【入門】Pythonの画像処理概要【数値計算】

Python
スポンサーリンク

はじめに

※ MATLAB、Python、Scilab比較ページはこちら

Pythonの画像処理について記載する。
主にDNNの訓練用/テスト用データの取得や各層の重みを無理やり画像として吐き出す際に使用することが多い。

今回はこの画像を使用。

画像読み込み

>>>import cv2
>>>im = cv2.imread('dog.jpg')

画像表示

>>>cv2.imshow(im)
>>>cv2.waitKey(0)	# これが無いと、表示Windowにイベントが行かない。
>>>cv2.destroyAllWindows()

画像処理

ここでは赤の成分だけを抽出してみる。
つまり、緑と青の成分を0にする。

取得されたデータはRGBではなく、BGRの順になっている。

>>>im[:,:,(0,1)] = 0	# B(0番目)、G(1番目)の成分を0にする
>>>cv2.imshow('image',im)
>>>cv2.waitKey(0)
>>>cv2.destroyAllWindows()

画像書き出し

>>>cv2.imwrite("dog2.jpg",im)

カメラキャプチャ

カメラから取り込んだイメージをそのまま表示&左右反転表示。

import cv2


def capture_camera():
    """Capture video from camera"""
    # カメラをキャプチャする
    cap = cv2.VideoCapture(0) # 0はカメラのデバイス番号

    while True:
        # retは画像を取得成功フラグ
        ret, frame = cap.read()

        # 鏡
        frame2 = frame[:,::-1]

        # フレームを表示する
        cv2.imshow('camera capture1', frame)
        cv2.imshow('camera capture2', frame2)

        k = cv2.waitKey(1) # 1msec待つ
        if k == 27: # ESCキーで終了
            break

    # キャプチャを解放する
    cap.release()
    cv2.destroyAllWindows()


capture_camera()

まとめ

OpenCVを使用することで、画像を行列データとして取得できる。
これにより画像処理がし易くなり、CNNの畳み込み、プーリング等も実施し易くなる。

Pythonをガッツリ学習したい場合はオンライン学習サービスなどもあります。
オンラインPython学習サービス「PyQ(パイキュー)」公式ページ

※ MATLAB、Python、Scilab比較ページはこちら

コメント

タイトルとURLをコピーしました