python opencv屏幕找图_使用Python+OpenCV进行图像模板匹配(Match Template)实例-找到百度首页按钮并点击...
意圖:準(zhǔn)備一張小圖,在電腦屏幕上找到小圖坐標(biāo),并點(diǎn)擊。
1? 安裝 opencv 和 numpy:
pip3 install opencv-python
上述命令將?opencv 和 numpy都安裝了,可以在類似D:\Python36\Lib\site-packages目錄下看到
2? 準(zhǔn)備小圖,用瀏覽器打開baidu.com,用截圖工具或PrtSc鍵截取百度首頁的那個“百度一下”button,另存為bd.png
3、用程序截屏,存為screen.png,導(dǎo)入兩張圖片,匹配,找到坐標(biāo),點(diǎn)擊。
由于還沒有PIL,先pip3 install PIL 結(jié)果提示:No matching distribution found for PIL
先 pip3 install Pillow 提示已經(jīng)安裝了... ...尷尬
為了進(jìn)行鼠標(biāo)點(diǎn)擊,安裝pyautogui
pip install -i https://pypi.douban.com/simple/ pyautogui
最終代碼:
# -*- coding: utf-8 -*-import pyautogui
import cv2
import numpyasnpfromPIL import ImageGrab
#截屏,同時提前準(zhǔn)備一張屏幕上會出現(xiàn)的小圖bd.png
im=ImageGrab.grab()
im.save('screen.png','png')
#加載原始RGB圖像
img_rgb= cv2.imread("screen.png")
#創(chuàng)建一個原始圖像的灰度版本,所有操作在灰度版本中處理,然后在RGB圖像中使用相同坐標(biāo)還原
img_gray=cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
#加載將要搜索的圖像模板
template= cv2.imread('bd.png',0)
#使用matchTemplate對原始灰度圖像和圖像模板進(jìn)行匹配
res=cv2.matchTemplate(img_gray,template,cv2.TM_CCOEFF_NORMED)
#設(shè)定閾值,0.7應(yīng)該可以
threshold= 0.999#res大于99.9%loc= np.where( res >=threshold)
#得到原圖像中的坐標(biāo)for pt in zip(*loc[::-1]):
print(pt[0],pt[1])
pyautogui.click(pt[0],pt[1])break#cv2.destroyAllWindows()
print("the end")
注意:測試時要把baidu首頁的按鈕顯示在屏幕上。
另外代碼好像還是寫復(fù)雜了,應(yīng)該可以直接用minMaxLoc獲取坐標(biāo)點(diǎn)。
總結(jié)
以上是生活随笔為你收集整理的python opencv屏幕找图_使用Python+OpenCV进行图像模板匹配(Match Template)实例-找到百度首页按钮并点击...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python语句分为什么语句_在pyth
- 下一篇: qq纵横四海源码_【0基础】纵横中文网p