我是編碼新手。我正在嘗試為自己做一個小專案。OpenCV 顯示模板匹配結果,但似乎我無法裁剪它或 imshow 沒有給我裁剪結果,這是我的代碼;
for myfile in files1:
image = cv.imread(myfile,0)
template_data.append(image)
for tmp in template_data:
w, h = tmp.shape[::-1]
result = cv.matchTemplate(img_gray,myfile,cv.TM_CCOEFF_NORMED)
_, _, _, maxLoc=cv.minMaxLoc(result)
topLeft = maxLoc
bottom_right = (topLeft[0] w , topLeft[1] h)
cv.rectangle(img_rgb,topLeft, bottom_right,255, 2)
crop_img = img_rgb[maxLoc[1]:maxLoc[1] w, maxLoc[0]:maxLoc[0] h, :]
cv.imshow("cropped", *crop_img)
cv.waitKey()
謝謝你的幫助
uj5u.com熱心網友回復:
洗掉*in imshow,您必須在一個引數中傳遞影像矩陣
cv.imshow("cropped", crop_img)
**(雙星/星號)和 *(星/星號)對引數有什么作用?
uj5u.com熱心網友回復:
我想我看到了你的錯誤。而不是cv2.waitKey()將其替換為:
cv2.waitKey(0) & 0xFF== ord(‘q’)
你必須有一個數字,waitKey因為這是它在運行下一個tmp. 此外,如果您添加ord('q')零件,代碼將等待您按下,q然后再進入下一步。您還可以添加:
cv2.destroyAllWindows()
當您按下q鍵時,這將關閉視窗。
最后要注意的是,waitKey正在等待以毫秒或 1/1000 秒為單位。因此,如果您輸入 500,它將在繼續之前等待半秒鐘。q如果你這樣做,它不會等待按鍵被按下。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/345432.html
