OpenCV Python unsupported array type error
Question: 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.


Answer: `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()
    

