1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | import cv2 import pyscreenshot import time
#讀取樣本圖片,將圖片讀取成黑白。1彩色、0黑白。 image_sample=cv2.imread("D:\Test\Sample.jpg",0) #擷圖目前螢幕畫面。 imagea_screenshot = pyscreenshot.grab() #設定圖片為目前時間。 image_file = 'D:\\' + time.strftime('%Y-%m-%d-%H-%M-%S') + '.jpg' #將擷圖畫面存檔。 imagea_screenshot.save(image_file, quality=100) #讀取圖片,將圖片讀取成黑白。 image = cv2.imread(image_file,cv2.IMREAD_GRAYSCALE) #圖片和樣本比對。TM_CCOEFF_NORMED比對出來準確值由1到-1。1是完全一樣。 match_result = cv2.matchTemplate(image, image_sample, cv2.TM_CCOEFF_NORMED) #最小值、最大值、最小值座標、最大值座標。 min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(match_result) #print(min_val, max_val, min_loc, max_loc) #準確度最大值9成以上表示找到和樣本相似度高的圖案,找到後進行畫框。 if max_val > 0.9: #讀取樣本的圖片尺吋,以為畫框的右下點。 height, width = image_sample.shape[:2] #將比對後最大值的座標加上樣子尺吋,做為右下點座標。 right=max_loc[0] + height, max_loc[1] + width #讀取要畫框的圖片。 image_result = cv2.imread(image_file,1) #畫框(圖片、左上座標、右下座標、顏色、線宽)。 cv2.rectangle(image_result,max_loc,right,(0, 0, 255), 2) #展示成果 cv2.imshow('My Image',image_result) cv2.waitKey(0) else: print('not find ')
|
沒有留言:
張貼留言