Pythonで動画にOpenCVのthreshold処理をして表示するプログラムを紹介します
Pythonで動画にOpenCVのthreshold処理をして表示するプログラムを紹介します。
動画の読み込みと表示はこちらの投稿で「Python OpenCVを使った動画の読み込みと表示」紹介しているので、この投稿ではthreshold処理をするプログラムをメインに紹介します。
読み込んで表示した動画は「Pexels」の動画を使わさせてもらいました。
目次
・threshold処理について
・通常の動画
・threshold処理をした動画
・動画にthreshold処理をするプログラム
threshold処理について
cv2.thresholdはグレイ(灰色)にした画像から指定した引数に従って、白と黒だけの画像(2値化した画像)にします。
※2値化は白と黒にする処理のことです。
cv2.thresholdの引数について、この投稿よりも詳しく紹介している投稿がこちら「cv2.threshold()[1]←この[1]について Python」の投稿になります。
通常の動画
threshold処理をしていない通常の動画になります。
threshold処理をした動画
動画にthreshold処理をするプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
import cv2 import numpy as np mv= cv2.VideoCapture('production ID_パソコン.mp4')#動画の読み込み frame_count =int(mv.get(cv2.CAP_PROP_FRAME_COUNT))#動画のフレームをすべて取得 print("総フレーム",frame_count) for i in range(frame_count): ch,frame=mv.read()#1フレームずつ取り出す if ch==True:#取り出せたら、変数chにTrueが入ります frame=cv2.resize(frame,(600,400)) gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)#グレイ画像にする threshold=cv2.threshold(gray,85,255,cv2.THRESH_BINARY_INV)[1]#2値化で白黒にする cv2.imshow('movie', threshold)#表示 k=cv2.waitKey(1)#1ミリ秒間フレームを表示 if k==27:#ESCキーを押したとき終了 break mv.release()#動画を閉じる cv2.destroyAllWindows()#ウインドウを閉じる |
13、14行目のthreshold処理をするプログラムの説明をします。
13行目は読み込んだ画像をcv2.cvtColorでグレイ画像にしています。
14行目はcv2.thresholdでグレイ画像から指定した引数(85,255,cv2.THRESH_BINARY_INV)に従って、白黒の2値化画像にしています。
cv2.THRESH_BINARY_INVは引数85のしきい値よりも大きいときは0(黒)それ以外は引数255(白)にします。
※しきい値(閾値)は境目となる値のことです。