1
votes

Accéder à la caméra Mac depuis Pycharm

Je souhaite capturer une vidéo avec un appareil photo Mac. J'utilise la bibliothèque opencv4.0.0 pour capturer et écrire la vidéo. Utilisation du terminal:

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()

Je peux accéder à la caméra Mac, mais lorsque j'exécute la même commande avec l'éditeur Pycharm, j'ai le problème suivant:

intrusion par le signal 6: SIGABRT

C'est probablement parce que je devrais activer l'accès Pycharm à la caméra à partir de Sécurité et confidentialité -> Confidentialité -> Caméra. J'ai cherché sur google et je ne savais pas comment ajouter le PyCharm à la section Confidentialité. Avez-vous des suggestions?

Voici mon code:

python main.py


1 commentaires

Sonne comme un problème connu youtrack.jetbrains.com/issue/IDEA-219288


4 Réponses :


0
votes

Il existe un moyen officiel de l'activer dans la configuration PyCharm. Modifier le fichier

 <key>Privacy - Camera Usage</key> 
 <string>PyCharm Project name</string>

Ajoutez une nouvelle paire clé et chaîne dans dict. Exemple:

/Applications/PyCharm\ CE.app/Contents/Info.plist


0 commentaires

0
votes

J'ai eu un peu de mal à résoudre ce problème, enfin j'ai trouvé une solution pour accéder à la caméra de PyCharm sur mac est d'exécuter votre fichier .py avec le terminal.

Suivez ces étapes:

  • Pour un exemple, j'ai un fichier nommé main.py. Cela initialise essentiellement la caméra et lit le cadre, puis s'ouvre dans une fenêtre séparée

  • Faites un clic droit sur main.py (dans l'explorateur de projet) et sélectionnez ouvrir dans le terminal

  • Dans la fenêtre du terminal de pyCharm IDE, tapez cette commande python main.py (python et votre nom de fichier )

Vous obtiendrez une fenêtre d'invite pour autoriser l'accès à votre caméra, veuillez appuyer sur Ok et cela activera votre module de caméra.


0 commentaires

1
votes

Aucune des solutions proposées n'a fonctionné pour moi.
Après quelques recherches, un commentaire de Lev Sokolov sur la section des problèmes de jetbrains m'a aidé à résoudre le problème.

  1. Ouvrez Xcode
  2. Fichier> Nouveau projet
  3. Choisissez l'application macOS
  4. Remplissez les informations du projet:
    • Nom du produit: pycharm
    • Identificateur d'organisation: com.jetbrains
    • Assurez-vous que l'identifiant du com.jetbrains.pycharm vous obtenez est: com.jetbrains.pycharm
    • Langue: Swift
    • Interface utilisateur: Storyboard
  5. Dans le nouveau projet, modifiez le fichier Info.plist en ajoutant une nouvelle propriété Privacy - Camera Usage Description avec une description Give me my camera access!
  6. Dans le fichier AppDelegate.swift de la fonction applicationDidFinishLaunching , insérez le code suivant demandant l'accès à la caméra:

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

  7. Exécutez l'application.

  8. Lorsque vous pycharm invité à autoriser l'accès de la caméra à l'application pycharm , autorisez-le (à partir de ce moment, vous verrez également l'application pycharm dans l'onglet Caméra dans le mac Sécurité et confidentialité)
  9. Quittez le Xcode, redémarrez le PyCharm
  10. Profitez de votre accès caméra depuis PyCharm

0 commentaires

0
votes

tout ce que tu as à faire:

1- aller aux applications

2- Faites glisser le pycharm dans le terminal

3- mettre cd avant le chemin absolu

4- Contenu du cd

5- nano Info.plist

6- pâte:

<?xml version="1.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>
</dict>
</plist>

7- appuyez sur ctrl + c puis entrez

8- appuyez sur ctrl + x pour quitter


0 commentaires