Canny処理とthreshold処理をした動画を同時に表示して比較
PythonプログラムでOpenCVのCanny処理とthreshold処理をした動画を同時に表示して、比較するプログラムを紹介します。
動画の読み込みと表示はこちらの投稿で「Python OpenCVを使った動画の読み込みと表示」紹介しているので、この投稿ではCanny処理とthreshold処理した画像を同時に表示するプログラムをメインに紹介します。
Canny処理とthreshold処理の仕方はこちら↓の投稿で紹介しています。
読み込んで表示した動画は「Pexels」の動画を使わさせてもらいました。
目次
・通常の動画
・動画にCanny処理とthreshold処理をして同時に表示している様子
・動画にCanny処理とthreshold処理をして同時に表示するプログラム
通常の動画
Canny処理とthreshold処理をしていない通常の動画
動画にCanny処理とthreshold処理をして同時に表示している様子
動画にCanny処理とthreshold処理をして同時に表示するプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
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) canny = cv2.Canny(gray, 100, 100)#Canny処理 threshold=cv2.threshold(gray,85,255,cv2.THRESH_BINARY_INV)[1]#threshold処理 cv2.imshow('movie_canny', canny)#表示 cv2.imshow('movie_threshold', threshold)#表示 k=cv2.waitKey(1)#1ミリ秒間フレームを表示 if k==27:#ESCキーを押したとき終了 break mv.release()#動画を閉じる cv2.destroyAllWindows()#ウインドウを閉じる |
18、19行目のCanny処理とthreshold処理をした画像を同時に表示するプログラムを説明します。
18行目は15行目でCanny処理をした画像をcv2.imshowで表示しています。
19行目は16行目でthreshold処理をした画像をcv2.imshowで表示しています。
cv2.imshowで同時に表示するときに気を付けないといけないことが、表示するときの名前を別々にしないといけないことです。
Cannyの場合は‘movie_canny’の名前にthresholdの場合は‘movie_threshold’の名前にして表示しています。
にんじんの画像(静止画)にcv2.thresholdとcv2.Cannyをして比較した投稿がこちら↓になります。