所以我只是想运行基本的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函数中传递到已经存在的视频的路径,它确实可以工作。我是所有这方面的初学者,所以我不确定是什么问题
谢谢:)
答案 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.