cv2.imread: checking if image is being read
If you're sure that the value of img
is None
in your case, you can simply use if not img is None
, or, equivalently, if img is not None
. You don't need to check the type explicitly.
Note that None
and False
are not the same value. However, bool(None)==False
, which is why if None
fails.
The documentation for imread
, both for OpenCV 2 and 3, states, however, that a empty matrix should be returned on error. You can check for that using if img.size ==0
from documentation, we may use
retval = cv.haveImageReader (filename)
source https://docs.opencv.org/master/d4/da8/group__imgcodecs.html
If you want to write the contents as soon as the image file is being generated then you can use os.path.isfile()
which return a bool
value depending upon the presence of a file in the given directory.
import cv2
import os.path
while not os.path.isfile("myImage.jpg"):
#ignore if no such file is present.
pass
img = cv2.imread("myImage.jpg", 0)
cv2.imwrite("result.jpg", img)
You can also refer to docs for detailed implementation of each method and basic image operations.