pyautogui鐏板害鍖归厤绠楁硶鎬庝箞瀹炵幇
瑕佸疄鐜皃yautogui鐏板害鍖归厤绠楁硶锛屽彲浠ユ寜鐓т互涓嬫楠よ繘琛岋細
-
棣栧厛锛屽皢寰呭尮閰嶇殑鍥惧儚鍜屽弬鑰冨浘鍍忛兘杞崲涓虹伆搴﹀浘鍍忋€傚彲浠ヤ娇鐢∣penCV搴撲腑鐨刢v2.cvtColor()鍑芥暟灏嗗浘鍍忚浆鎹负鐏板害鍥惧儚銆?/p>
-
鎺ヤ笅鏉ワ紝浣跨敤pyautogui搴撲腑鐨剆creenshot()鍑芥暟鏉ヨ幏鍙栧睆骞曟埅鍥俱€傚皢鎴浘涔熻浆鎹负鐏板害鍥惧儚銆?/p>
-
鍦ㄧ伆搴﹀浘鍍忎笂浣跨敤妯℃澘鍖归厤绠楁硶銆傚彲浠ヤ娇鐢∣penCV搴撲腑鐨刢v2.matchTemplate()鍑芥暟鏉ヨ繘琛屾ā鏉垮尮閰嶃€傝鍑芥暟浼氬湪灞忓箷鎴浘涓婃粦鍔ㄤ竴涓ぇ灏忎笌鍙傝€冨浘鍍忕浉鍚岀殑妯℃澘鍥惧儚锛岀劧鍚庤绠楁瘡涓綅缃殑鍖归厤绋嬪害銆?/p>
-
鏍规嵁鍖归厤绋嬪害鎵惧埌鏈€浣冲尮閰嶄綅缃€傚彲浠ヤ娇鐢∣penCV搴撲腑鐨刢v2.minMaxLoc()鍑芥暟鏉ヨ幏鍙栧尮閰嶇▼搴︾殑鏈€灏忓拰鏈€澶у€硷紝骞舵壘鍒版渶澶у€煎搴旂殑浣嶇疆銆?/p>
-
鏈€鍚庯紝鍙互浣跨敤pyautogui搴撲腑鐨刲ocateOnScreen()鍑芥暟鏉ュ畾浣嶅睆骞曚笂鐨勫浘鍍忋€傝鍑芥暟浼氬湪灞忓箷鎴浘涓悳绱笌鍙傝€冨浘鍍忕浉浼肩殑鍖哄煙锛屽苟杩斿洖鍏朵綅缃€?/p>
涓嬮潰鏄竴涓畝鍗曠殑绀轰緥浠g爜锛?/p>
import cv2
import pyautogui
# 灏嗗浘鍍忚浆鎹负鐏板害鍥惧儚
def convert_to_gray(image):
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
return gray
# 鑾峰彇灞忓箷鎴浘骞惰浆鎹负鐏板害鍥惧儚
screenshot = pyautogui.screenshot()
screenshot_gray = convert_to_gray(screenshot)
# 鍔犺浇鍙傝€冨浘鍍忓苟杞崲涓虹伆搴﹀浘鍍?/span>
reference_image = cv2.imread('reference_image.jpg')
reference_image_gray = convert_to_gray(reference_image)
# 杩涜妯℃澘鍖归厤
result = cv2.matchTemplate(screenshot_gray, reference_image_gray, cv2.TM_CCOEFF_NORMED)
# 鑾峰彇鍖归厤绋嬪害鐨勬渶澶у€煎拰浣嶇疆
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
top_left = max_loc
bottom_right = (top_left[0] + reference_image_gray.shape[1], top_left[1] + reference_image_gray.shape[0])
# 鍦ㄥ睆骞曟埅鍥句笂缁樺埗鐭╁舰妗嗘潵鏍囪瘑鍖归厤浣嶇疆
cv2.rectangle(screenshot, top_left, bottom_right, (0, 255, 0), 2)
# 鏄剧ず缁撴灉
cv2.imshow('Result', screenshot)
cv2.waitKey(0)
cv2.destroyAllWindows()
鍦ㄤ笂杩颁唬鐮佷腑锛屾垜浠鍏堝皢灞忓箷鎴浘鍜屽弬鑰冨浘鍍忛兘杞崲涓虹伆搴﹀浘鍍忥紝鐒跺悗浣跨敤cv2.matchTemplate()鍑芥暟杩涜妯℃澘鍖归厤锛屾壘鍒版渶浣冲尮閰嶄綅缃紝骞跺湪灞忓箷鎴浘涓婄粯鍒剁煩褰㈡鏉ユ爣璇嗗尮閰嶄綅缃€傛渶鍚庯紝浣跨敤cv2.imshow()鍑芥暟鏄剧ず缁撴灉銆?/p>