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

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

はじめに

※ MATLAB、Python、Scilab比較ページはこちら
https://www.simulationroom999.com/blog/comparison-of-matlab-python-scilab/

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

今回はこの画像を使用。

犬と自転車

画像読み込み

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

画像表示

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

画像処理

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

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

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

画像書き出し

>>>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、Python

まとめ

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

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

ポイント

  • 環境構築不要
    • ブラウザだけで学習を始められる。
  • 申し込みから4ステップで登録を完了
    • 申し込み完了待ちとかない。すぐ始められる。
  • 1,000問以上の実践的な課題がある。

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

コメント

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