私はこれについて正しい方向に進むのか、もっと効率的な方法があるのか疑問に思っていました。Pythonを使用してビデオ内の画像を検索
ビデオの1フレームごとにこのイメージがその内側のどこかに格納されているように(フルサイズのフレームではなく小さなもの)、ビデオ内のイメージを検索しようとしています。
は、現在のような絵にビデオを引っ張っ:import cv2
vidcap = cv2.VideoCapture('My_Video.mp4')
success,image = vidcap.read()
count = 0
success = True
while success:
success,image = vidcap.read()
print ('Read a new frame: ', success)
cv2.imwrite("frame%d.jpg" % count, image) # save frame as JPEG file
count += 1
はその後のようなそれらすべてをループ:
import cv2
import numpy as np
from matplotlib import pyplot as plt
img_rgb = cv2.imread('frame1.png')
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
template = cv2.imread('small_icon_I_am_looking_for.png',0)
w, h = template.shape[::-1]
res = cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
threshold = 0.8
loc = np.where(res >= threshold)
for pt in zip(*loc[::-1]):
cv2.rectangle(img_rgb, pt, (pt[0] + w, pt[1] + h), (0,0,255), 2)
cv2.imwrite('res.png',img_rgb)
は、おそらく画像の保存をスキップする方法はありますか?私は何千時間ものビデオを通してこれをやっており、必要ではないかもしれない時間を使って感じるフレームをすべて保存して削除しています。毎回画像を保存する必要なしに、これをどのように検索することができますか?これは、私が何を意味するかの一例である再生されているスーパーマリオの映像があったと言う、それがこのコインを探します:
、そのようにそれを検出します。
これは現在機能していますが、より良い方法を探しています。
あなたがそれらを読むときにイメージを処理できませんか?または、2番目の部分にミニフレームを保存しないでください。 – gowrath
最初の部分では、どうやってそれを行うのか分かりませんでした。どういうわけか、私はこの種のコードではあまり働かなかったし、これが私ができる最高のものだった。 – Lain
回答が追加されましたが、私はあなたを誤解している可能性があります。コメントで私に教えてください。 – gowrath