概要
MacBook Proで内蔵のカメラ(FaceTime HD Camera)ではなく、USB接続したカメラを使用し、Pythonからカメラ画像を取得し、表示した。
きっかけ
MacBookでUSBカメラを接続してみたが、すんなりと扱えなかった。調べるとどうやらCamTwistというソフトを利用すると解決するらしい。
そして、CamTwistを起動したままにしておく必要がある。
環境
- macOS 10.14
- MacBook Pro 13
- Python 3.7
- CamTwist 3.4.3
カメラ画像の取得
内蔵のカメラ画像を取得する場合は、このスクリプトで表示できる。
camera.py
import cv2
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
cv2.imshow('camera', frame)
if cv2.waitKey(1)==27: # ESCで抜ける
break
cap.release()
cv2.destroyAllWindows()
CamTwistをインストール
http://camtwiststudio.com/
dmgをダウンロードし、pkg(インストーラ)を起動すると.appファイルが入る。
webcam->AppleScript->Webcamと進み、「FaceTime HD Camera」を「USB_Camera #~」に変更した。
CamTwistを起動したまま、VideoCaptureのデバイスIDを1〜に変更して起動してみる。
私が実行したときは2で取得できた。
camera.py
import cv2
cap = cv2.VideoCapture(2)
while True:
ret, frame = cap.read()
cv2.imshow('camera', frame)
if cv2.waitKey(1)==27: # ESCで抜ける
break
cap.release()
cv2.destroyAllWindows()