cv2.imshow command doesn't work properly in opencv-python

PythonOpencvImage Processing

Python Problem Overview


I'm using opencv 2.4.2, python 2.7 The following simple code created a window of the correct name, but its content is just blank and doesn't show the image:

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

does anyone knows about this issue?

Python Solutions


Solution 1 - Python

imshow() only works with waitKey():

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

(The whole message-loop necessary for updating the window is hidden in there.)

Solution 2 - Python

I found the answer that worked for me here: http://txt.arboreus.com/2012/07/11/highgui-opencv-window-from-ipython.html

> If you run an interactive ipython session, and want to use highgui > windows, do cv2.startWindowThread() first. > > In detail: HighGUI is a simplified interface to display images and > video from OpenCV code. It should be as easy as:

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

Solution 3 - Python

You must use cv2.waitKey(0) after cv2.imshow("window",img). Only then will it work.

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

Solution 4 - Python

If you are running inside a Python console, do this:

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

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

Then if you press Enter on the image, it will successfully close the image and you can proceed running other commands.

Solution 5 - Python

I faced the same issue. I tried to read an image from IDLE and tried to display it using cv2.imshow(), but the display window freezes and shows pythonw.exe is not responding when trying to close the window.

The post below gives a possible explanation for why this is happening

https://stackoverflow.com/questions/9987419/pythonw-exe-is-not-responding

"Basically, don't do this from IDLE. Write a script and run it from the shell or the script directly if in windows, by naming it with a .pyw extension and double clicking it. There is apparently a conflict between IDLE's own event loop and the ones from GUI toolkits."

When I used imshow() in a script and execute it rather than running it directly over IDLE, it worked.

Solution 6 - Python

add cv2.waitKey(0) in the end.

Solution 7 - Python

Method 1:

The following code worked for me. Just adding the destroyAllWindows() didn't close the window. Adding another cv2.waitKey(1) at the end did the job.

im = cv2.imread("./input.jpg")
cv2.imshow("image", im)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey(1)

credit : https://stackoverflow.com/a/50091712/8109630

Note for beginners:

  • This will open the image in a separate window, instead of displaying inline on the notebook. That is why we have to use the destroyAllWindows() to close it later.
  • So if you don't see a separate window pop up, check if it is behind your current window.
  • After you view the image press a key to close the popped up window.

Method 2:

If you want to display on the Jupyter notebook.

from matplotlib import pyplot as plt
import cv2

im = cv2.imread("./input.jpg")
color = cv2.cvtColor(im, cv2.COLOR_BGR2RGB)
plt.imshow(color)
plt.title('Image')
plt.show()

Solution 8 - Python

For me waitKey() with number greater than 0 worked

    cv2.waitKey(1)

Solution 9 - Python

This is how I solved it:

import cv2
from matplotlib import pyplot
    
img = cv2.imread('path')
pyplot.imshow(img)
pyplot.show()

Solution 10 - Python

You've got all the necessary pieces somewhere in this thread:

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

works fine for me in IDLE.

Solution 11 - Python

If you have not made this working, you better put

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

into one file and run it.

Solution 12 - Python

Doesn't need any additional methods after waitKey(0) (reply for above code)

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

Window appears -> Click on the Window & Click on Enter. Window will close.

Solution 13 - Python

I also had a -215 error. I thought imshow was the issue, but when I changed imread to read in a non-existent file I got no error there. So I put the image file in the working folder and added cv2.waitKey(0) and it worked.

Solution 14 - Python

this solved it for me, import pyautogui

Solution 15 - Python

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

you can try this code :)

Solution 16 - Python

For 64-bit systems to prevent errors, use this end cv2.waitKey(1) add 0xFF.

example:

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

You can also use the following command for more control by stopping the program by pressing the Q button.

import cv2
img=cv2.imread('C:/Python27/03323_HD.jpg')
cv2.imshow('Window',img)
if cv2.waitKey(0) & 0xFF == ord('Q'):
    break
cv2.destroyAllwindows()

Solution 17 - Python

If you choose to use "cv2.waitKey(0)", be sure that you have written "cv2.waitKey(0)" instead of "cv2.waitkey(0)", because that lowercase "k" might freeze your program too.

Solution 18 - Python

> error: (-215) size.width>0 && size.height>0 in function imshow

This error is produced because the image is not found. So it's not an error of imshow function.

Solution 19 - Python

I had the same 215 error, which I was able to overcome by giving the full path to the image, as in, C:\Folder1\Folder2\filename.ext

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questiontop.engView Question on Stackoverflow
Solution 1 - PythonberakView Answer on Stackoverflow
Solution 2 - PythonAkhorusView Answer on Stackoverflow
Solution 3 - PythonAdityaIntwalaView Answer on Stackoverflow
Solution 4 - PythonDharmaView Answer on Stackoverflow
Solution 5 - PythonrkdasariView Answer on Stackoverflow
Solution 6 - PythonPygirlView Answer on Stackoverflow
Solution 7 - Pythonblue-zirconView Answer on Stackoverflow
Solution 8 - PythonRambodView Answer on Stackoverflow
Solution 9 - PythonItay GuyView Answer on Stackoverflow
Solution 10 - PythoniamchriskelleyView Answer on Stackoverflow
Solution 11 - PythonJosephView Answer on Stackoverflow
Solution 12 - PythonRavi Chandra VeeramachaneniView Answer on Stackoverflow
Solution 13 - PythonCirculationDeptView Answer on Stackoverflow
Solution 14 - PythonBob BobsterView Answer on Stackoverflow
Solution 15 - PythonFATEGHView Answer on Stackoverflow
Solution 16 - PythonSalioView Answer on Stackoverflow
Solution 17 - PythonGuilherme GirãoView Answer on Stackoverflow
Solution 18 - PythonAlvaro FernandezView Answer on Stackoverflow
Solution 19 - Pythonuser3458364View Answer on Stackoverflow