はじめに
※ 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()
画像処理
ここでは赤の成分だけを抽出してみる。
つまり、緑と青の成分を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(パイキュー)」公式ページ
ポイント
- 環境構築不要
- ブラウザだけで学習を始められる。
- 申し込みから4ステップで登録を完了
- 申し込み完了待ちとかない。すぐ始められる。
- 1,000問以上の実践的な課題がある。
※ MATLAB、Python、Scilab比較ページはこちら
コメント