user3140249
user3140249

Reputation: 53

OpenCV Python unsupported array type error

I am new to Python (but not new to openCV) and I am pretty sure everything is installed correctly, I have tested some programs and the seem to work fine, but when ever I want to draw on an image, for example this code taken from a Python openCV tutorial :

import numpy as np
import cv2
# Create a black image
img = np.zeros((512,512,3), np.uint8)
# Draw a diagonal blue line with thickness of 5 px
img = cv2.line(img,(0,0),(511,511),(255,0,0),5)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

I get this following error:

OpenCV Error: Bad flag (parameter or structure field) (Unrecognized or unsupported array type) in cvGetMat, file /build/buildd/opencv-2.3.1/modules/core/src/array.cpp, line 2482
Traceback (most recent call last):
File "/home/dccv/rec 2.py", line 17, in <module>
cv2.imshow('img',img)
cv2.error: /build/buildd/opencv-2.3.1/modules/core/src/array.cpp:2482: error: (-206)
Unrecognized or unsupported array type in function cvGetMat

any help would be appreciated, I get the same error on both windows and ubuntu.

Upvotes: 5

Views: 8619

Answers (1)

Velimir Mlaker
Velimir Mlaker

Reputation: 10955

line function returns None so you're trying to show None.

The fix (on line 6) is to not set the img variable to the return value, instead just ignore the return value:

import numpy as np
import cv2
# Create a black image
img = np.zeros((512,512,3), np.uint8)
# Draw a diagonal blue line with thickness of 5 px
cv2.line(img,(0,0),(511,511),(255,0,0),5)
cv2.imshow('img',img)
cv2.waitKey(0)
cv2.destroyAllWindows()

Upvotes: 5

Related Questions