我正在尝试在mac中使用opencv和python来匹配对象。
但是我收到了这个错误。
OpenCV: Cannot Use FaceTime HD Kamera (Yerleşik)
OpenCV: camera failed to properly initialize!
Segmentation fault: 11
这也是我的代码。
import numpy as np
import cv2
import time
ESC=27
camera = cv2.VideoCapture(0)
orb = cv2.ORB_create()
while True:
ret, imgCamColor = camera.read()
imgCamGray = cv2.cvtColor(imgCamColor, cv2.COLOR_BGR2GRAY)
kpCam = orb.detect(imgCamGray,None)
kpCam, desCam = orb.compute(imgCamGray, kpCam)
bf = cv2.BFMatcher(cv2.NORM_HAMMING, crossCheck=True)
matches = bf.match(desCam,desTrain)
good = []
cv2.imshow('Camara', result)
key = cv2.waitKey(20)
if key == ESC:
break
cv2.destroyAllWindows()
camera.release()
我也试过了几件事。 但它无效。
答案 0 :(得分:6)
我的OpenCV脚本遇到了同样的问题。我建议通过内置应用程序(例如Photo Booth)测试相机。正如您在图像中看到的那样,相机未被检测到。解决方案非常简单,我重新启动计算机或运行以下命令:sudo killall VDCAssistant
。
我的脚本用于在重新启动计算机后测试OpenCV :
import cv2
cv2.namedWindow("preview")
vc = cv2.VideoCapture(0)
rval, frame = vc.read()
while True:
if frame is not None:
cv2.imshow("preview", frame)
rval, frame = vc.read()
if cv2.waitKey(1) & 0xFF == ord('q'):
break
答案 1 :(得分:1)
答案 2 :(得分:1)
如果您使用的是MAC,我实际上是通过在“系统偏好设置”的“安全性和隐私”部分中授予终端访问摄像机的权限来解决此问题的。希望这可以解决Mac中的问题 Click Here To View Steps
答案 3 :(得分:0)
我已经解决了这个问题。您应该授予 iTerm 或终端使用相机的权限
在 mac osx 上的系统首选项中转到安全和隐私 enter image description here
授予 iTerm 访问相机的权限 enter image description here