LoginSignup
3
3

More than 3 years have passed since last update.

opencvによるリアルタイムでの画像処理基礎

Posted at

はじめに

パソコンについているカメラで、リアルタイムでその画面を表示させるプログラムの紹介

環境

言語: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()

何も処理自体は変わらない。しかし、処理の塊としてみるには下記の方がプログラマーとしては見やすいかもしれない。いちいち一個ずつ処理してるように見えてしまうからである。

さいごに

今回は基礎中の基礎をやった。これを応用したものもこれから書いていくし、ほかのライブラリを含めて様々なことができるので、やってみるといい。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3