Mac“中止” OpenCV Python脚本

时间:2018-10-03 19:01:26

标签: python opencv macos-mojave

所以我只是想运行基本的OpenCV程序

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

        # Display the resulting frame
        cv2.imshow('frame',frame)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break

    # When everything done, release the capture
    cap.release()
    cv2.destroyAllWindows()

但是由于某种原因,当我尝试运行它(使用python 2或3)时,我得到了这个奇怪的中止语句

    [1]    74309 abort      python3 index.py

(我猜5位数是PID),但是,如果我在VideoCapture函数中传递到已经存在的视频的路径,它确实可以工作。我是所有这方面的初学者,所以我不确定是什么问题

谢谢:)

4 个答案:

答案 0 :(得分:4)

我找到了解决方案! 我尝试使用mac随附的默认终端运行脚本,该脚本可以正常工作:)因此,似乎我使用的第三方终端(iTerm)出现了一些奇怪的问题

答案 1 :(得分:1)

您必须授权iTerm访问摄像机(在“系统偏好设置”中)。默认情况下,Terminal和iTerm都不具有此权限。 macOS Mojave只是要求允许iTerm,您的Python程序运行良好! 这不是iTerm的问题,还是的问题。

答案 2 :(得分:0)

OpenCV运行VSCode时遇到了同样的问题。事实证明,访问新macOS上的摄像头确实是权限错误。我无法VSCode来请求许可(或通过系统偏好设置手动添加)。

我的解决方案是使用{p> 1以VSCode的身份运行

root

这不是最干净的解决方案,但对我有用。

答案 3 :(得分:0)

在VSCode中,

1.type cmd+shift+p 
2.type "shell command: Install code in PATH"
3. Close vscode
4. Use "sudo code" to open vscode 
5. It will give warning not to run as a root user
6. Ignore the warning and run the file , you will not get the "Abort trap: 6" error anymore.