OpenCV Error: (-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) in function 'CvtHelper'

后端 未结 4 1757
攒了一身酷
攒了一身酷 2020-12-20 13:02
Traceback (most recent call last):
File \"demo.py\", line 132, in 
     `result = find_strawberry(image)`
File \"demo.py\", line 63, in find_strawberry
`image = cv2.         


        
相关标签:
4条回答
  • 2020-12-20 13:15

    Well I was doing the Epipolar Geometry (find the link below) and I had this issue. I solved this error by doing one of the two methods:

    First method - keeping the original colors: A. I load the image with its original color (in my case it was RGB) by deleting the zero parameter from cv2.imread.

    img1 = cv2.imread('image.jpg') 
    

    B. You might need to edit the shape of the image since it is RGB

    r, c,_ = img1.shape 
    

    C. Comment the conversion

    # img1 = cv2.cvtColor(img1,cv2.COLOR_GRAY2BGR)
    

    The second method - converting into grayscale image: A. I load the image in BGR by adding the zero parameter into cv2.imread.

    img1 = cv2.imread('image.jpg',0) 
    

    B. You might need to edit the shape of the image since it is BGR

    r, c = img1.shape 
    

    C. Now you can convert the image into grayscale image

    img1 = cv2.cvtColor(img1,cv2.COLOR_GRAY2BGR)
    

    If the two methods do not work for you, you might need to check the links below they might have answer your question:

    https://github.com/aleju/imgaug/issues/157 https://github.com/llSourcell/Object_Detection_demo_LIVE/issues/6

    Epipolar Geometry

    https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_calib3d/py_epipolar_geometry/py_epipolar_geometry.html

    0 讨论(0)
  • 2020-12-20 13:21

    get the same error while using trackbar in opencv but this method resolved it:

    img = np.full((512,512,3), 12, np.uint8)
    

    where img is your image

    0 讨论(0)
  • 2020-12-20 13:26

    Just in case if anyone is still having the same error even after applying the above fix then do check the depth of your image i.e. Check whether the image is grayscale or colored since cv2.COLOR_BGR2GRAY cannot convert images that are already grayscale and thus throws up this error.

    0 讨论(0)
  • 2020-12-20 13:31

    Even I had the same problem, and the solution was quiet easy. Remember 1 thing, if the RGB values of your image lie in the range of 0-255, make sure the values are not of data type 'float'. As OpenCV considers float only when values range from 0-1. If it finds a float value larger than 1 it clips off the value thinking floats only exists between 0-1. Hence such errors generated. So convert the data type to uint8 if values are from 0-255.

    image = image.astype('uint8')
    

    Check this Kaggle Kernel to learn more about it

    0 讨论(0)
提交回复
热议问题