[踩坑记录]mac vscode终端opencv无法调用摄像头
mac上vscode 集成的终端无法获得摄像头权限,你可以使用系统终端运行代码,会提示
终端
请求摄像头权限 同意后可以使用终端运行opencv代码调用mac摄像头
vscode中的集成终端需要给vscode摄像头权限,但测试了使用vscode运行python和c++版本的opencv代码 运行时都不会跳出请求摄像头权限的窗口
参考了这个issue解决了这个问题:
步骤如下
1 关闭mac的保护模式:
mac默认开启了rootless机制,即使是root用户很多系统文件也不能修改,所以需要先关闭
- 重启时按住
comand+R
进入恢复模式,启动后选工具栏中的终端 - 终端中输入
csrutil disable
- 重启电脑
2 按isuue中操作添加权限
- 没设置root密码的话先修改root密码
su root
cd ~/Library/Application Support/com.apple.TCC
cp TCC.db TCC.db_backup
sqlite3 TCC.db
- 用sqlite3插入以下语句:
INSERT INTO access VALUES('kTCCServiceMicrophone','com.microsoft.VSCode',0,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1590575788);
INSERT INTO access VALUES('kTCCServiceCamera','com.microsoft.VSCode',0,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1590575788);
.exit
然后重新登陆或者重启
现在摄像头权限中就有了vscode了
现在vscode中的集成终端中就可以运行程序正常调用mac的摄像头了