首页 > 解决方案 > 从 Pycharm 访问 Mac 相机

问题描述

我想使用 Mac 相机拍摄视频。我正在使用 opencv4.0.0 库来捕获和编写视频。使用终端:

python main.py

我可以访问 Mac 相机,但是当我使用 Pycharm 编辑器执行相同的命令时,我遇到了以下问题:

被信号 6 中断:SIGABRT

这可能是因为我应该启用 Pycharm 从 Security & Privacy -> Privacy -> Camera 访问相机。我通过谷歌搜索,我无法弄清楚如何将 PyCharm 添加到隐私部分。你有什么建议吗?

这是我的代码:

from cv2 import VideoCapture, imshow, waitKey, destroyAllWindows,   
                VideoWriter, VideoWriter_fourcc

cap = VideoCapture(0)
video_codec = VideoWriter_fourcc(*'XVID')
output = VideoWriter("usb_webcam.avi", video_codec, 20.0, (640, 480))

while(True):
    ret, frame = cap.read()
    imshow(winname="frame", mat=frame)
    output.write(image=frame)
    if waitKey(delay=20) & 0xFF == ord('q'):
        break

cap.release()
output.release()
destroyAllWindows()

标签: macospycharm

解决方案


建议的解决方案都不适合我。
经过一番研究,Lev Sokolov 对jetbrains 问题部分的评论帮助我解决了这个问题。

  1. 打开 Xcode
  2. 文件 > 新项目
  3. 选择 macOS 应用程序
  4. 填写项目信息:
    • 产品名称:pycharm
    • 组织标识符:com.jetbrains
    • 确保您获得的 Bundle 标识符是:com.jetbrains.pycharm
    • 语:Swift
    • 用户界面:Storyboard
  5. 在新项目编辑文件中添加带有一些描述Info.plist的新属性Privacy - Camera Usage DescriptionGive me my camera access!
  6. 在函数的AppDelegate.swift文件中applicationDidFinishLaunching插入以下代码请求摄像头访问:

    import AVKit ... func applicationDidFinishLaunching(_ aNotification: Notification) { // Insert code here to initialize your application AVCaptureDevice.requestAccess(for: .video) { _ in } }

  7. 运行应用程序。

  8. 当提示允许相机访问pycharm应用程序时,允许它(从这一刻起,您还将在 mac Security&Privacy 的“相机”选项卡中看到 pycharm 应用程序)
  9. 退出 Xcode,重启 PyCharm
  10. 享受从 PyCharm 访问相机的乐趣

推荐阅读