您好,我正在尝试编写一个程序,可以检测我在网络摄像头上持有的颜色,然后当我移动颜色时,计算机应该画一条线:我遵循本教程:https://www.youtube.com/watch?v=WQeoO7MI0Bs 我的代码:
import cv2
import numpy as np
frameWidth = 640
frameHieght = 480
cap = cv2.VideoCapture(0)
cap.set(3, frameWidth)
cap.set(4, frameHieght)
cap.set(10, 150)
myColors = [[5, 107, 0, 19, 255, 255], # orange
[133, 56, 0, 159, 156, 255], # purple
[57, 76, 0, 100, 255, 255]] # green
def findcolor(img, myColors):
imgSHV = cv2.cvtColor(img)
lower = np.array(myColors[0][0:3])
upper = np.array(myColors[0][3:6])
mask = cv2.inRange(imgSHV, lower, upper)
cv2.imshow("img", mask)
while True:
success, img = cap.read()
findcolor(img, myColors)
cv2.imshow('Result', img)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
在我的第一台笔记本电脑上,它说找不到MFViedeo格式(编解码器),在我的第二台笔记本电脑上,它说ModuleNotFoundError:没有名为“cv2.cv2”的模块。当我试着通过jupyter笔记本和spyder运行代码时,它说python停止工作了。 我还尝试了以下代码来访问我的相机,但它给出了相同的ModuleNotFoundError:没有名为“cv2.cv2”的模块,python停止工作。代码如下:
import cv2
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BAYER_BG2BGR)
cv2.imshow('frame', frame)
if cv2.waitKey(1) & 0xff == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
当我在我的Windows10电脑上尝试相同的代码时,它说:-------------------------------------------------------------
error Traceback (most recent call last)
<ipython-input-15-88911053ec4b> in <module>
26 while True:
27 success, img = cap.read()
---> 28 findcolor(img, myColors)
29 cv2.imshow('Result', img)
30 if cv2.waitKey(1) & 0xFF == ord('q'):
<ipython-input-15-88911053ec4b> in findcolor(img, myColors)
17
18 def findcolor(img, myColors):
---> 19 imgSHV = cv2.cvtColor(img, cv2.COLOR_BAYER_BG2BGR)
20 lower = np.array(myColors[0][0:3])
21 upper = np.array(myColors[0][3:6])
错误:OpenCV(4.4.0)C:\Users\app\u ey*r\AppData\Local\Temp\1\pip-re\uu-build-2y91i\u 7w\OpenCV\modules\imgproc\src\demosaicing.cpp:1721:错误:(-215:断言失败)scn==1&&;函数“cv::demosaicing”中的(dcn==3 | | dcn==4)
目前没有回答
相关问题 更多 >
编程相关推荐