【发布时间】:2019-06-04 17:51:46
【问题描述】:
我需要有人给我解释一下这四行代码:
res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED)
threshhold = 0.70
loc = np.where( res >= threshhold)
for pt in zip(*loc[:: -1]):
我有点知道前两个是什么意思。但是循环部分让我发疯。
- 在这种情况下 zip() 的作用是什么?
- 我们为什么要颠倒列表
- “*loc”是什么意思?我的意思是星号
- pt 到底是什么?
其余代码(重要的部分):
while True:
for i in range(4):
img_gray = cv2.cvtColor(imageGrab(), cv2.COLOR_BGR2GRAY)
f = str(files[i])
template = cv2.imread(f, 0)
w, h = template.shape[:: -1]
res = cv2.matchTemplate(img_gray, template, cv2.TM_CCOEFF_NORMED)
threshhold = 0.70
loc = np.where( res >= threshhold)
for pt in zip(*loc[:: -1]):
x=pt[0]
y=pt[1]
center_x = (x + 0.5 * w) + 415
center_y = (y + 0.5 * h) + 287
pyautogui.click(center_x , center_y)
time.sleep(4)
count = count + 1
break
我把 break 放在最后,因为我只想使用循环一次(你认为有什么更好的方法吗?)
我会非常感谢所有回答的人。你不必回答我所有的问题,如果你只知道一个答案然后分享。谢谢
【问题讨论】:
标签: python opencv template-matching