cv2.imshow কমান্ড ওপেনসিভি-পাইথনে সঠিকভাবে কাজ করে না


111

আমি ওপেনসিভি ২.৪.২, পাইথন ২.7 ব্যবহার করছি নিম্নলিখিত সাধারণ কোডটি সঠিক নামের একটি উইন্ডো তৈরি করেছে, তবে এর সামগ্রীটি খালি এবং চিত্রটি দেখায় না:

import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow',img)

কেউ কি এই সমস্যা সম্পর্কে জানেন?


আপনার ফাইলের পথটি ভুল হতে পারে। উইন্ডোজ না / ব্যবহার করে / আমি নিশ্চিত নই যে ওপেনসিভি উইন্ডোজে / সহ্য করে? যদি এটি স্থির করে দেয় যা সহায়তা করে না, তবে নিশ্চিত হয়ে নিন যে আপনার চিত্রটি সঠিক স্থানে রয়েছে এবং এটি একটি বৈধ চিত্র।
fmw42

সেখানে / পড়া বুনিয়াদি সঙ্গে একটি টিউটোরিয়াল চিত্র প্রদর্শন করে docs.opencv.org/master/dc/d2e/tutorial_py_image_display.html
কন Psych

উত্তর:


228

imshow()শুধুমাত্র সাথে কাজ করে waitKey():

import cv2
img = cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow', img)
cv2.waitKey()

(উইন্ডোটি আপডেট করার জন্য প্রয়োজনীয় পুরো বার্তা-লুপটি সেখানে লুকানো আছে))


3
চেক করুন print imgএকটি সঠিক নমপি অ্যারে প্রিন্ট করে, কোনও NoneTypeবস্তু নয়।
আবিদ রহমান কে

7
কেবল উত্তরসূরিদের জন্য পরিষ্কার হতে, সাধারণ পরিস্থিতিতে এটি সঠিক উত্তর হবে। ওয়েটকিকে ছাড়ার ফলে (সাধারণত) প্রশ্নের মধ্যে বর্ণিত ঠিক আচরণ হবে।
স্নাস্টিকেল

45

আমি এখানে উত্তরটি পেয়েছি যা আমার জন্য কার্যকর হয়েছিল: http://txt.arboreus.com/2012/07/11/highgui-opencv-window-from-ipython.html

যদি আপনি একটি ইন্টারেক্টিভ আইপিথন সেশন চালনা করেন এবং হাইগুই উইন্ডো ব্যবহার করতে চান তবে প্রথমে cv2.startWindowThread () করুন।

বিশদভাবে: হাইজিইউআই ওপেনসিভি কোড থেকে চিত্র এবং ভিডিও প্রদর্শনের জন্য একটি সরলীকৃত ইন্টারফেস। এটি হিসাবে সহজ হতে হবে:

import cv2
img = cv2.imread("image.jpg")
cv2.startWindowThread()
cv2.namedWindow("preview")
cv2.imshow("preview", img)

7
আপনি এটি পরে cv2.destroyAlWindows () দ্বারা বন্ধ করতে পারেন
Zuza

হাইগুইয়ের কিউটি প্রয়োগের জন্য, স্টার্ট উইন্ডোথ্রেড () কিছুই করে না। github.com/opencv/opencv/blob/...
kusi

24

আপনার অবশ্যই ব্যবহার করা উচিত cv2.waitKey(0) পরে করাcv2.imshow("window",img) । তবেই এটি কাজ করবে।

import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('Window',img)
cv2.waitKey(0)

আমি যুক্ত করব ইমেজটি প্রদর্শনের জন্য আপনাকে পাইথন আইডিই ইনস্টল করার প্রয়োজন হতে পারে এবং আপনার উইন্ডোটিও সন্ধান করা উচিত কখনও কখনও এটি সামনে প্রদর্শিত হয় না। Cv2.waitKey () এ প্রথম বন্ধনীটি আমি ধরে নেব যে মিলসেকেন্ডে রয়েছে এবং আপনি যদি খালি ছেড়ে যান তবে এটি চিত্রটি চিরতরে প্রদর্শিত হবে।
আহমদিহ

11

আপনি যদি পাইথন কনসোলের অভ্যন্তরে ছুটে চলেছেন তবে এটি করুন:

img = cv2.imread("yourimage.jpg")

cv2.imshow("img", img); cv2.waitKey(0); cv2.destroyAllWindows()

তারপরে আপনি যদি Enterচিত্রটিতে টিপেন, এটি সফলভাবে চিত্রটি বন্ধ করবে এবং আপনি অন্যান্য কমান্ডগুলি চালিয়ে যেতে পারেন।


7

আমি একই সমস্যা সম্মুখীন। আমি আইডিএল থেকে একটি চিত্র পড়ার চেষ্টা করেছি এবং এটি ব্যবহার করে প্রদর্শন করার চেষ্টা করেছি cv2.imshow(), তবে উইন্ডোটি বন্ধ করার চেষ্টা করার সময় ডিসপ্লে উইন্ডো হিমশীতল এবং শো pythonw.exeসাড়া দিচ্ছে না।

নীচের পোস্টটি কেন এটি হচ্ছে তার একটি সম্ভাব্য ব্যাখ্যা দেয়

pythonw.exe সাড়া দিচ্ছে না

" মূলত, আইডিএল থেকে এটি করবেন না a একটি স্ক্রিপ্ট লিখুন এবং উইন্ডোতে থাকলে শেল বা স্ক্রিপ্ট থেকে সরাসরি এটি চালনা করুন। লুপ এবং জিইউআই টুলকিটগুলি থেকে প্রাপ্ত ""

আমি যখন imshow()কোনও স্ক্রিপ্টে ব্যবহার করি এবং সরাসরি আইডিএল-এর মাধ্যমে চালানোর চেয়ে এটি কার্যকর করি তখন এটি কার্যকর হয়েছিল।


দয়া করে লিঙ্কটিতে প্রদত্ত ব্যাখ্যাটি যুক্ত করুন (কমপক্ষে সর্বনিম্ন) কারণ লিঙ্কগুলি বাসি যেতে পারে ... ধন্যবাদ :)
achedeuzot

যেহেতু আমার কাছে সমস্যাটি হ'ল তবে ... "এটি করবেন না" এর উত্তর আমি খুঁজছি না =)
এরিক


4

আমার জন্য ওয়েটারকি () 0 এর বেশি সংখ্যক সহ কাজ করেছে

    cv2.waitKey(1)

3

আপনি এই থ্রেডে কোথাও সমস্ত প্রয়োজনীয় টুকরো পেয়েছেন:

if cv2.waitKey(): cv2.destroyAllWindows()

আইডলিতে আমার জন্য কাজ করে।


3

আপনি যদি এই কাজটি না করে থাকেন তবে আপনি আরও ভাল করে রাখুন

import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('Window',img)
cv2.waitKey(0)

একটি ফাইলের মধ্যে এটি চালান।


1

এর পরে কোনও অতিরিক্ত পদ্ধতির দরকার নেই waitKey(0)(উপরের কোডের জবাব)

import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('ImageWindow',img)
cv2.waitKey(0)

উইন্ডো প্রদর্শিত হবে -> উইন্ডোতে ক্লিক করুন এবং এন্টার এ ক্লিক করুন। উইন্ডো বন্ধ হবে।


0

যদি আপনি "cv2.waitKey (0)" ব্যবহার করা চয়ন করেন তবে নিশ্চিত হন যে আপনি "cv2.waitkey (0)" এর পরিবর্তে "cv2.waitKey (0)" লিখেছেন, কারণ সেই ছোট হাতের অক্ষর "কে" আপনার প্রোগ্রামটিও হিমশীতল করে দিতে পারে ।


3
লোয়ারকেস কী সহ পদ্ধতিটি API তে বিদ্যমান নেই। কোডটি কোনও ত্রুটি ছুঁড়ে দেবে কারণ পদ্ধতিটি বিদ্যমান নেই।
রেআরিং

0

আমারও -215 ত্রুটি ছিল। আমি ভাবলাম ইস্যুটি সমস্যাটি ছিল, কিন্তু যখন আমি অস্তিত্বহীন ফাইলটিতে পড়ার জন্য পঠন বদলেছিলাম তখন আমি কোনও ত্রুটি পাইনি। সুতরাং আমি চিত্রের ফাইলটি কার্যকারী ফোল্ডারে রেখে cv2.waitKey (0) যুক্ত করেছি এবং এটি কাজ করেছে।


-1

ত্রুটি: (-215) আকার। প্রস্থ> 0 && মাপের উচ্চতা> 0 এ ফাংশন প্রদর্শন করুন

এই ত্রুটিটি উত্পাদিত হয়েছে কারণ চিত্রটি পাওয়া যায় নি। সুতরাং এটি ইমশো ফাংশনের ত্রুটি নয়।


এই প্রশ্নের সাথে প্রাসঙ্গিক নয়।
রেআরিং

-1

আমার একই 215 ত্রুটি ছিল, যা আমি চিত্রটির পুরো পথ দিয়ে কাটিয়ে উঠতে পেরেছি, যেমন: সি: old ফোল্ডার 1 \ ফোল্ডার 2 \ filename.ext


কি "একই 215 ত্রুটি"? ওপিএস প্রশ্নের কোথাও কোনও ত্রুটির উল্লেখ নেই। এছাড়াও ওপি চিত্রটির পুরো পথ ব্যবহার করছে, সুতরাং আমি কীভাবে এটি প্রশ্নের উত্তর দিচ্ছি তা দেখছি না।
ম্যাক্স ভোলার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.