【问题标题】:Python Opencv 2.4.X Videocamera errorPython Opencv 2.4.X 摄像机错误
【发布时间】:2017-02-24 01:05:30
【问题描述】:

我是 opencv python 编程的新手,我只是按照 youtube 上的教程并在我的 windows 机器上运行现成的代码。我的安装步骤都是正确的,但我无法将内置的笔记本电脑摄像头与球跟踪或任何代码一起使用。如果我更改代码中的行

来自

cap = cv2.VideoCapture(0)

cap = cv2.VideoCapture('video.mp4')

一切都很好。只是我无法使用笔记本电脑的摄像头,这是我得到的错误

OpenCV 错误:在 cv::cvtColor,文件 ........\opencv\modules\imgproc\src\color.cpp 中断言失败 (scn == 3 || scn == 4),第 3739 行 回溯(最近一次通话最后): 文件“C:/Python Programs Pycharm/Opencv_test.py”,第 11 行,在 灰色 = cv2.cvtColor(帧,cv2.COLOR_BGR2GRAY) cv2.error: ........\opencv\modules\imgproc\src\color.cpp:3739: 错误: (-215) scn == 3 ||函数 cv::cvtColor 中的 scn == 4

最后,这是我从堆栈溢出中使用的代码,只是为了测试我的视频源

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()

【问题讨论】:

    标签: python-2.7 opencv image-processing


    【解决方案1】:

    抱歉,由于我缺乏声誉,我无法发表评论。您的代码没有任何问题。但是找不到摄像头。尝试不同的地址,例如cap = cv2.VideoCapture(1) 或检查您的相机硬件。

    【讨论】:

      【解决方案2】:

      似乎错误来自您尝试重新着色时。你应该添加一个检查像

      if not ret or not frame:
          break
      

      这将确认您的相机没有给您任何输入。它还会告诉您视频何时结束,因此一般来说拥有它只是一个好主意。如果这不是问题,请尝试打印出框架的形状print(frame.shape),它应该是 (W, L, 3)。

      我也看到你标记了这个问题 python2.7。对 python2.7 的支持即将结束,因此我建议使用 python3,因为它还允许您使用 asyncio 在帧上异步执行更大的任务。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-10
        • 1970-01-01
        • 1970-01-01
        • 2013-03-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多