如何在windows计算机上使用opencv表示未找到编解码器

2024-09-28 21:58:47 发布

您现在位置:Python中文网/ 问答频道 /正文

您好,我正在尝试编写一个程序,可以检测我在网络摄像头上持有的颜色,然后当我移动颜色时,计算机应该画一条线:我遵循本教程: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)


Tags: 代码importimgnparraycv2lowerframe