29

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)
4
  • What is the exception raised when you run into this OpenCV Error? Commented Jan 15, 2012 at 22:44
  • Yes, you're being very unclear. Please explain your problem more clearly. Unfortunately I can't tell you specifically what you should improve in your question, because I don't understand it at all. Commented Jan 15, 2012 at 22:47
  • Post the traceback, and if possible the exceptional code Commented Jan 15, 2012 at 22:53
  • 2
    Some OpenCV functions don't throw errors, they print out a message and exit the program (either with exit or abort, I can't remember). In other words, there are some errors that can't be caught. Commented Jan 16, 2012 at 0:50

2 Answers 2

43

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).

Sign up to request clarification or add additional context in comments.

Comments

6

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.