llSourcell / Object_Detection_demo_LIVE

This is the code for the "How to do Object Detection with OpenCV" live session by Siraj Raval on Youtube
103 stars 80 forks source link

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

Open Dinesh317 opened 6 years ago

Dinesh317 commented 6 years ago

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.cvtColor(image, cv2.COLOR_BGR2RGB) cv2.error: OpenCV(3.4.2) /Users/travis/build/skvark/opencv-python/opencv/modules/imgproc/src/color.hpp:253: error: (-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) in function 'CvtHelper'

xaggi commented 6 years ago

Hi, did you solve it? I am having the same issue here :(

hollowstrawberry commented 6 years ago

I'm pretty sure it just means the image doesn't exist. I fixed the path when opening the image and it worked for me.

pblxptr commented 6 years ago

I have the same issue, but fixing the path does not work for me.

hollowstrawberry commented 6 years ago

Due to the cause of the error in my case, you might want to double check that the image isn't None, or in an otherwise invalid state I suppose (though about that I wouldn't know)

pblxptr commented 6 years ago

The image isn't None. I can show it. It occurs when I'm trying to convert image from RGBA to GRAY.

ArmoredReaper commented 6 years ago

I'm getting the same error, even when using the full path to the image. Someone else I know had the same problem and fixed it by moving the pictures, but I can't get it to work no matter what I try. (FYI working on a Mac, not sure if that changes anything)

hollowstrawberry commented 6 years ago

When I next got this error (or a very similar one at least) it was because I was trying to make my own image with a numpy array. It probably doesn't help in your cases, but I realized each pixel has to be on its own sublist, like so: [[[a,b,c]], [[a,b,c]], [[a,b,c]]]

Try printing your image to the console to see if it makes sense

Hitsaa commented 6 years ago

I also had the same issue. Actually I had mistakenly typed wrong name of image file in my code that I was trying to import. But when I typed the right name of file then this issue was solved.

shravankumar9892 commented 6 years ago

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 exsist 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 Kernal

Sannndy0000 commented 5 years ago

I met the same problem and found that this occurred to me simply because I commented out 2 lines:

if cv2.waitKey(1) & 0xFF == ord('q'):
        break

Getting them back made it work.

JH-Xie commented 5 years ago

I solved this problem by use x = np.asarray(x, dtype=np.uint8) before do the conversion

INF800 commented 5 years ago

I solved this problem by use x = np.asarray(x, dtype=np.uint8) before do the conversion

for this code, i used your instruction :

cap = cv2.VideoCapture(0)

while(True):

Capture frame-by-frame

ret, frame = cap.read()

frame = np.asarray(frame, dtype=np.uint8)

# Our operations on the frame come here
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

# Display the resulting frame
cv2.imshow('frame',gray)
if cv2.waitKey(1) & 0xFF == ord('q'):
    break

When everything done, release the capture

cap.release() cv2.destroyAllWindows()

i am getting error : int() argument must be a string, a bytes-like object or a number, not 'NoneType'

Soumyatrivedi3099 commented 5 years ago

error: (-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) in function 'CvtHelper' i have this same error and i dont know how to remove it.

shubhambagwari commented 5 years ago

Try this once, cap = cv2.VideoCapture(0) #O is for internal camera. cap = cv2.VideoCapture(1) #1 is for external camera.

ZP-Guo commented 5 years ago

I get this error because of a stupid bug. I use LSP dataset to train some nets recently and this bug that you discuss comes. What something wrong. I find it for two days. And I find "im00001.jpg" was changed into "img00001.jpg" by myself. So maybe it is just a little bug that I can not get it as soon as I can.

Mahdidrm commented 4 years ago

Try this once, cap = cv2.VideoCapture(0) #O is for internal camera. cap = cv2.VideoCapture(1) #1 is for external camera.

Yeeees... thank you ! I am working on a code that wrote on labtop and I am running it on my PC... I use 1 and it works !!!! thanks a lot

Dhurub007 commented 4 years ago

get the same error while using trackbar in opencv but after this method it resolved img = np.full((512,512,3), 12, np.uint8)

SCF-byter commented 4 years ago

I had exactly the same error. Basically, it happend because I accidentally put Greyscale images into cv2.cvtColor(image, cv2.COLOR_BGR2RGB). So make sure you are definitively putting in color images (i.e. images with three channels)

14-purva commented 4 years ago

error: (-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) in function 'cv::CvtHelper<struct cv::Set<3,4,-1>,struct cv::Set<1,-1,-1>,struct cv::Set<0,2,5>,2>::CvtHelper' can somebody help me out with this error....

Faguilar-V commented 4 years ago

I have the same issue, but fixing the path does not work for me.

Yes, only change the path work

Zaniyar commented 4 years ago

Non of the above solved my problem.

What I noticed is, when I use pyCharm or Code I get those errors. In pyCharm:

  rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2BGRA)
cv2.error: OpenCV(3.4.2) /Users/travis/build/skvark/opencv-python/opencv/modules/imgproc/src/color.hpp:253: error: (-215:Assertion failed) VScn::contains(scn) && VDcn::contains(dcn) && VDepth::contains(depth) in function 'CvtHelper'

in Code: Abort trap: 6

I tested: I have everywhere the same env and same python version.

Solution for me:

When I run the code in the standalone terminal, it works fine.

I tried also to run Code as admin (with sudo on the terminal, but got same errors).

Michal2207 commented 2 years ago

I've got the same error. I fixed it by using two '\' in the file path instead of one '\'.

rafaelmsales27 commented 2 years ago

I had the same problem, I was sure the path was right.

My problem was in the cv2.imread I had before the color conversion.

Since I am getting the image from a file instead of cv2.VideoCapture.

My code was as follows:

# x is my path
for x in list_of_paths:
        raw_img = cv2.imread(x)
        raw_img_colored = cv2.cvtColor(raw_img, COLOR_BayerRG2RGB)

The solution was to put the cv2.IMREAD_UNCHANGED (or -1) inside the cv2.imread method as follows:

# x is my path
for x in list_of_paths:
        raw_img = cv2.imread(x, -1)
        raw_img_colored = cv2.cvtColor(raw_img, COLOR_BayerRG2RGB)

Hope it helps!