Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to catch "OpenCV Error" in Python

Tags:

If I get OpenCV Error: ...

what's the syntax to catch it since OpenCV Error uses two words? I'm able to catch the following cv.error but how would I catch this?

EDIT:

I don't get it... is the answer obvious? Am I being unclear?

EDIT 2

I can't reproduce it b/c I'm on a different computer but it looked similar to:

OpenCV Error: Bad argument. Something something array

cv.error: This is another error

I'm able to catch cv.error but not OpenCV Error with the following:

try:     # do a thing except (cv.error, OpenCV Error):     print "Can't do the thing"     sys.exit(1) 
like image 716
user1136342 Avatar asked Jan 15 '12 21:01

user1136342


People also ask

Is Open CV and cv2 same?

cv2 (old interface in old OpenCV versions was named as cv ) is the name that OpenCV developers chose when they created the binding generators. This is kept as the import name to be consistent with different kind of tutorials around the internet.

What does .read do OpenCV?

read() in OpenCV returns 2 things, boolean and data. If there are not 2 variables, a tuple will be assigned to one variable. The boolean is mostly used for error catching.

What is cv2 on Python?

cv2 is the module import name for opencv-python, "Unofficial pre-built CPU-only OpenCV packages for Python". The traditional OpenCV has many complicated steps involving building the module from scratch, which is unnecessary. I would recommend remaining with the opencv-python library.

How does OpenCV Check mouse clicks?

All you have do is to define a callback function in the OpenCV C++ code attaching to the OpenCV window. That callback function will be called every time, mouse events occur. That callback function will also give the coordinates of the mouse events. (e.g - (x, y) coordinate of a mouse click).


2 Answers

Try cv2.error.

try:     ... except cv2.error as e:     ... 

Here's the page from the documentation but it's only for the C/C++ interface -- I can't find anything on the Python error handling for OpenCV (I find the documentation for the Python interface to be sadly lacking).

like image 114
mathematical.coffee Avatar answered Oct 14 '22 12:10

mathematical.coffee


you can easily inspect the error object, like

fvs = imutils.video.FileVideoStream(args.input).start()  while fvs.more():    frame = fvs.read()    try:          grayframe = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)    except cv2.error as e:          # inspect error object     print(e)     for k in dir(e):       if k[0:2] != "__":         print("e.%s = %s" % (k, getattr(e, k)))      # handle error: empty frame     if e.err == "!_src.empty()":       break # break the while loop 
like image 36
Mila Nautikus Avatar answered Oct 14 '22 12:10

Mila Nautikus