Python resim arama ve tıklama konusunda geliştirdiğim bir kod. Opencv nin template matching özelliğini kullanarak masaüstündeki belirtilen bir görüntüyü bulup tıklamaya yarıyor. Bu kodu oyun botlarında, program test işlemlerinde kullanabilirsiniz.
Python Resim Arama Kaynak Kodu
#!/usr/bin/env python # -*- coding: utf-8 -*- import cv2 import numpy as np import pyautogui import PIL from time import time, sleep import pyscreenshot as ImageGrab def click_image(template_filename,button="left", clicks=1, interval=0.25): control = control_image(template_filename) if(control != False): w = control[2] h = control[3] top_left = control bottom_right = (top_left[0] + w, top_left[1] + h) center =((top_left[0]+bottom_right[0])/2,(top_left[1]+bottom_right[1])/2) pyautogui.moveTo(center) pyautogui.click(center,button=button,clicks=clicks, interval=interval) print("clicked") else: print("not found") def control_image(template_filename): pyautogui.screenshot('current_screen.png') screen = cv2.imread('current_screen.png',cv2.IMREAD_GRAYSCALE) template = cv2.imread(template_filename,cv2.IMREAD_GRAYSCALE) if template is None: print("failed to load template.") return False w, h = template.shape[::-1] method = 'cv2.TM_CCOEFF_NORMED' meth = eval(method) res = cv2.matchTemplate(screen,template,meth) threshold = 0.8 loc = np.where( res >= threshold) x,y = loc[::-1] if len(x) > 0 and len(y) > 0: return (x[0],y[0],w, h) else: return False def get_location_image(template_filename): control = control_image(template_filename) if(control != False): return (control[0],control[1]) else: return False
Örnek bir kullanım

Kod parçacığımız da pyautogui kütüphanesinide içe aktardığımız için diğer scriptlerde de bu kütüphanenin özelliklerini rahatlıkla kullanabiliriz.
Örneğin görselde de görüldüğü üzere click_image() fonksiyonunun altında
pyautogui.typewrite('Hello world!') pyautogui.press('enter')
fonksiyonlarını da kullandık. Bunlar kısaca ‘typewrite’ otomatik bir şekilde programın bir şeyler yazdırmasına yarıyor. ‘press’ fonksiyonu ise ‘enter’ gibi özel tuşlara bastırmamıza yarıyor.
Python ile yazılmış diğer OpenCV örneklerine aşağıdaki butona tıklayarak ulaşabilirsiniz.
Python OpenCV ÖrnekleriTüm OpenCV Örnekleri için aşağıdaki butona tıklayın
Tüm OpenCV Örnekleri
Kodu bir türlü. Başarılı bir. Şekilde çalıştıramadım. İstediğim yeri bulmuyor. Sebebi ne olabilir?
aldığınız hatayı paylaşırsanız size daha rahat yardımcı olabilirim.
çok çok teşekkür ederim. Gerçekten çok işime yaradı. Çalıştırmak için uzun süre çabaladım ancak sonunda başarılı oldum. çok teşekkür ederim..