はじめに
パソコンについているカメラで、リアルタイムでその画面を表示させるプログラムの紹介
環境
言語:python3
ライブラリ:opencv
エディタ:jupyter notebook
ソースコード
import cv2
#captureの準備
cap = cv2.VideoCapture(0)
#起動と画面表示まで
while(1):
#capture frameの作成
_, frame = cap.read()
cv2.imshow('Original', frame)
#originalの反転(鏡状態)
original = cv2.flip(frame, 1)
cv2.imshow('Inversion', original)
#binarization
gray = cv2.cvtColor(original, cv2.COLOR_RGB2GRAY)
cv2.imshow('Binarization', gray)
k = cv2.waitKey(5) & 0xFF
if k == 27:
break
cv2.destroyAllWindows()
cap.release()
"Original"はカメラによってとらえられた本体である。
"Inversion"はoriginalの画面の反転を行うことにより、鏡のように見せている。
"Binarization"はInversionの画面を二値化(=binarization)をしたものであり、白黒になる。
今回は処理がわかりやすいが、コードを書く人によっては以下のように並べ替えられる。
import cv2
#captureの準備
cap = cv2.VideoCapture(0)
#起動と画面表示まで
while(1):
#capture frameの作成
_, frame = cap.read()
#originalの反転(鏡状態)
original = cv2.flip(frame, 1)
#binarization
gray = cv2.cvtColor(original, cv2.COLOR_RGB2GRAY)
k = cv2.waitKey(5) & 0xFF
if k == 27:
break
cv2.imshow('Original', frame)
cv2.imshow('Inversion', original)
cv2.imshow('Binarization', gray)
cv2.destroyAllWindows()
cap.release()
何も処理自体は変わらない。しかし、処理の塊としてみるには下記の方がプログラマーとしては見やすいかもしれない。いちいち一個ずつ処理してるように見えてしまうからである。
さいごに
今回は基礎中の基礎をやった。これを応用したものもこれから書いていくし、ほかのライブラリを含めて様々なことができるので、やってみるといい。