Python3.6 + OpenCV3.1.1でUSBカメラの画像をとる

実際のところ

環境はmacOSですが、winやlinux系でも基本は変わらないかと思われます。

これまでpipを使ってましたが、環境変数まわりの崩壊が怖いので放棄。
新たにminicondaを入れます。
Miniconda — Conda
からダウンロード用スクリプトを持ってきて、実行。
その状態で、condaコマンドを実行です。
リポジトリを追加して、インストール。
初回だと結構時間かかるので気長に。

$ conda config --add channels conda-forge
$ conda install opencv

ようやくスクリプト本体。

import numpy as np
import cv2

if __name__=="__main__":

    capture = cv2.VideoCapture(0)
    
    if capture.isOpened() is False:
        raise("IO Error")

    cv2.namedWindow("Capture", cv2.WINDOW_AUTOSIZE)

    ret, image = capture.read()


    cv2.imshow("Capture", image)
    cv2.imwrite("picture.png", image)
    print(".")
    capture.release()
    cv2.destroyAllWindows()

実行すると、一回だけループが回って、カメラ画像がでてきます。
例はmacOSのフロントカメラの画像です。
f:id:shuzo_kino:20171224225815p:plain