这是错误的代码:
import numpy as np
import cv2
cap = cv2.VideoCapture(0)
cap.set(3,640)
cap.set(4,480)
while(True):
ret, frame = cap.read()
frame = cv2.flip(frame, -1)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.imshow('frame', frame)
cv2.imshow('gray', gray)
k = cv2.waitKey(30) & 0xff
if k == 27:
break
cap.release()
cv2.destroyAllWindows()
这是我得到的错误:
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
cv2.error: /home/piwheels/opencv-python/opencv/modules/imgproc/src/color.cpp:10638: error: (-215) scn == 3 || scn == 4 in function cvtColor
我不知道如何解决这个问题。你能救我吗?
答案 0 :(得分:0)
错误信息说的是你的cvtColor(帧)输入图像应该有三个(R,G,B)或四个(R,G,B,A)通道将它转换为灰度,它确实不
这可能是因为:
首先,注释行
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
和
cv2.imshow('gray', gray)
并测试您是否可以看到捕获的帧。很可能你不会看到彩色图像,并且(图像捕获)可能是问题所在。