【问题标题】:Cannot turn on Mac Webcam through OpenCV python无法通过 OpenCV python 打开 Mac 网络摄像头
【发布时间】:2020-09-10 17:32:29
【问题描述】:

我是 opencv 的新手,并试图通过 OpenCV python 访问我的 Macbook 的内置摄像头,但它给出了错误。

import cv2

frameWidth = 640
frameHeight = 480
cap = cv2.VideoCapture(0)
cap.set(3, frameWidth)
cap.set(4, frameHeight)
cap.set(10,150)

while True:
   success, img = cap.read()
   cv2.imshow("Result", img)
   if cv2.waitKey(1) & 0xFF == ord('q'):
       break

Traceback (most recent call last):
  File "/Users/hasanaktas/PycharmProjects/OpencvPython/project3.py", line 12, in <module>
    cv2.imshow("Result", img)
cv2.error: OpenCV(4.2.0) /Users/travis/build/skvark/opencv-python/opencv/modules/highgui/src/window.cpp:376: error: (-215:Assertion failed) size.width>0 && size.height>0 in function 'imshow'

已经尝试将 VideoCapture(0) 更改为 VideoCapture(1) 并添加以下代码,但仍然没有帮助。顺便说一句,使用 PyCharm

cap.release()
cv2.destroyAllWindows()

【问题讨论】:

  • 什么是cap.set(10,150)?尽量避免这样丑陋的常量,并使用为您定义的参数名称。
  • 你怎么称呼它?我在工作中被告知,Apple 最近阻止了未经Apple Developer 签名的任何内容访问任何外围设备。这给我们带来了问题,因为它不会让 Audacity 访问麦克风。我们必须围绕它构建一个 shell 脚本包装器。 Bash 已签名,因此名为 audacity 的 bash 脚本被允许访问麦克风。
  • 我不建议在苹果设备上使用opencv视频流功能;我从来没有让他们工作。相反,也许考虑从 AVCaptureSession 流式传输并将各个帧发送到您的函数。毕竟,视频只是一系列单独的图像。尝试使用 UIImageToMat 函数(您可能必须使用 c++ 库)。

标签: python opencv computer-vision pycharm opencv-python


【解决方案1】:

我想提两个建议。

#1:使您的终端或 PyCharm 能够接触到摄像头。


  • 转到System Preferences-> Security and Privacy -> Camera 并将 PyCharm 添加到列表中。

#2 使用while cap.isOpened() 代替while True,这样您就可以知道PyCharmterminal 可以访问您的相机。

  • import cv2
    
    frameWidth = 640
    frameHeight = 480
    cap = cv2.VideoCapture(0)
    cap.set(3, frameWidth)
    cap.set(4, frameHeight)
    cap.set(10,150)
    
    while cap.isOpened():
        success, img = cap.read()
        if success:
            cv2.imshow("Result", img)
            if cv2.waitKey(1) & 0xFF == ord('q'):
                break
    

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,但没有找到任何解决方案。通过反复试验,我发现我的OpenCV 版本已损坏。结果,我删除了它并安装了一个新的。您可以使用以下两个选项之一: 1。终端 运行brew uninstall opencv3 卸载opencv 然后使用sudo apt-get install libopencv-dev python-opencv 命令安装它。

    2。蟒蛇 其实我是用这个方法解决我自己的问题的。

    1. 打开蟒蛇
    2. 转到环境部分并选择您的环境,如下所示: 然后点击安装并搜索opencv 选择opencv包并卸载它。然后尝试通过选择未安装并搜索opencv 来重新安装opencv。小心安装正确的版本。

    【讨论】:

      猜你喜欢
      • 2017-09-25
      • 2012-12-20
      • 2017-01-29
      • 2017-02-09
      • 2021-07-02
      • 1970-01-01
      • 2017-04-03
      • 2018-04-12
      • 2012-06-16
      相关资源
      最近更新 更多