wsl2中使用opencv进行图片模版匹配
环境搭建:
安装Qt 库和OpenGL
sudo apt-get install libgl1-mesa-glx libegl1-mesa libgles2-mesa
sudo apt-get install libqt5core5a libqt5gui5
安装pip
sudo apt update
sudo apt install pip
pip设置国内源
没有配置文件就新建一个
nano ~/.config/pip/pip.conf
[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
安装opencv相关库
pip install opencv-python
示例程序
示例图片:test.png
模版图片:template.png
下面程序就是在test.png中看是否有template.png的元素:
import cv2
import numpy as np
# 读取原始图像和模板图像
img = cv2.imread('test.png') # 这里替换为你要搜索的大图路径
template = cv2.imread('template.png') # 这里替换为模板图片路径
# 获取模板的宽度和高度
w, h = template.shape[:-1]
# 使用模板匹配方法
res = cv2.matchTemplate(img, template, cv2.TM_CCOEFF_NORMED)
threshold = 0.8 # 设置阈值
# 找到匹配位置
loc = np.where(res >= threshold)
# 绘制矩形框
for pt in zip(*loc[::-1]):
cv2.rectangle(img, pt, (pt[0] + w, pt[1] + h), (0, 0, 255), 2)
# 显示结果
cv2.imshow('Detected', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
运行
python3 test.py
运行后可见到找到了这个元素: