2

I have a project in raspberry pi and I am using python. However I have a problem with the OpenCV when I am trying to run this code:

`import numpy as np
 import cv2

 cap = cv2.VideoCapture(0)

 while(True):
    # Capture frame-by-frame
    ret, frame = cap.read()

    # 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 get this error:

OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cvtColor, file /home/pi/opencv-3.1.0/modules/imgproc/src/color.cpp, line 8000

Traceback (most recent call last):
  File "test.py", line 11, in <module>
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.error: /home/pi/opencv-3.1.0/modules/imgproc/src/color.cpp:8000:  error: (-215) scn == 3 || scn == 4 in function cvtColor"

I have Python 3.4.2,OpenCV 3.1.0 and Numpy 1.8.2.

7
  • frame appears to be already grascale. So you can avoid the cvtColor line, and just do gray = frame Commented Feb 5, 2016 at 13:11
  • i have tried this code even without the "gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)" command but i get pretty much the same error with the difference that in the end says "in function imshow" instead of cvtColor Commented Feb 5, 2016 at 13:44
  • Can you provide a single sample frame? What happens if you save a sample frame to a file, read it from file again and proceed as above (ie which step does not work?). Are you sure that video capture works? Commented Feb 5, 2016 at 13:47
  • Then you probably don't load the frame correctly in the first place. Check if ret==True, or the frame is None. Or even that cap.isOpened() Commented Feb 5, 2016 at 13:48
  • i just tried "if not cap.isOpened(): print("cant open camera")" and when i run it i get this message and after this again the same error.so i guess it has to do with the camera the frame the camera driver i dont know.any ideas??? Commented Feb 5, 2016 at 14:04

1 Answer 1

2

So I found an answer. All I had to do was run this code on my raspberry pi:

sudo modprobe bcm2835-v4l2

Thank you for all the help.

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

1 Comment

Yes you must ensure you load up the Video for Linux drivers

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.