我无法从命令行OpenCV程序访问iMac相机。(我正在CodeRunner而不是Xcode下编译和运行程序。)我已经读过Mojave NSCameraUsageDescription在Info.plist中需要的内容,并且我认为我已经将它正确地嵌入了二进制文件中。我在编译标志中添加了-sectcreate __TEXT __info_plist Info.plist(我在这里学到的),当我运行时otool -X -s __TEXT __info_plist videotest | xxd -r(从同一博客文章)它输出:
-?<?xml ve.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSCameraUsageDescription</key>
<string>Uses camera to see vision targets</string>
<key>NSMicrophoneUsageDescription</key>
<string>This app requires to access your microphone in order to access the camera</string>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
(我添加了NSMicrophoneUsageDescription,以防它试图与相机一起打开麦克风。)
这是我运行程序时的输出:
OpenCV version 4.1.0-dev
[ INFO:0] global /Users/steve/Documents/GitHub/ssteve-opencv/modules/videoio/src/videoio_registry.cpp (185) VideoBackendRegistry VIDEOIO: Enabled backends(5, sorted by priority): FFMPEG(1000); GSTREAMER(990); AVFOUNDATION(980); CV_IMAGES(970); CV_MJPEG(960)
[ INFO:0] …Run Code Online (Sandbox Code Playgroud)