1
保存したビデオに長方形を描きたい。四角形を描きながら、ビデオはフリーズする必要があります。私は画像上に長方形を描画するのに成功していますが、opencvとpythonを使って保存されたビデオで同じことをする方法はわかりません。opencvとpythonを使って保存したビデオのマウスクリックイベント
保存したビデオに長方形を描きたい。四角形を描きながら、ビデオはフリーズする必要があります。私は画像上に長方形を描画するのに成功していますが、opencvとpythonを使って保存されたビデオで同じことをする方法はわかりません。opencvとpythonを使って保存したビデオのマウスクリックイベント
私はopencvを使用してROI選択メカニズムを必要としていましたが、最終的にどのように実装するかを考えました。
実装はここにあります(opencvdragrect)。これはopencv 3.1.0とPython 2.7を使用しています
保存されたビデオは、別のフレームを読み込まずに表示するまで、ビデオは一時停止中と見なされます。
一時停止した動画(フレーム)に追加する方法については、次のコードを参考にしてください。あなたが使用します(opencvdragrect)ライブラリで
import cv2
import selectinwindow
wName = "select region"
video = cv2.VideoCapture(videoPath)
while(video.isOpened()):
# Read frame
ret, RGB = video.read()
frameCounter += 1
if frameCounter == 1 : # you can pause any frame you like
rectI = selectinwindow.dragRect
selectinwindow.init(rectI, I, wName, I.shape[1], I.shape[0])
cv2.namedWindow(wName)
cv2.setMouseCallback(wName, selectinwindow.dragrect, rectI)
while True:
# display the image
cv2.imshow(wName, rectI.image)
key = cv2.waitKey(1) & 0xFF
# if returnflag is set break
# this loop and run the video
if rectI.returnflag == True:
break
box = [rectI.outRect.x,rectI.outRect.y,rectI.outRect.w,rectI.outRect.h]
# process the video
# ...
# ...
矩形選択プロセスを停止して、ビデオを続行するにはダブルクリックします。
これが役に立ちます。
現在のコードを入力する必要があります。コード内のコメントを使用して、問題のある場所を強調表示します。 –
グローバルなchar c = waitKey(10)を宣言します。矩形の描画を開始すると、イベントはLButtonDownになり、char cをwaitKey(0)に設定します。それはビデオを凍結させるかもしれない –