OpenCV实现图像识别

OpenCV实现图像识别
硅胶海绵条
矿用运人车1. 图像识别匹配算法
1) 模板匹配:对要操作的画⾯元素进⾏单独的截图,将该截图视作模板,利⽤这个模板在屏幕或当前窗⼝进⾏搜索匹              配,到符合条件的区域,并提取出中⼼点坐标的过程,称为模板匹配。
局限性:当⽐例或旋转⾓度发⽣变化时难以应对,会匹配失败
2) 滑动⽐对:RGBA,A指Alpha通道的意思,图层透明度
3) 匹配度/相似度(similarity):主要⽤于解决图像匹配过程中的容错问题,像素点的匹配个数浮动范围,像素点具体的          RGBA值得浮动范围,如果只关注轮廓,可以采⽤转为⿊⽩图的处理⽅法
补充:常见问题:
a. 运算量过⼤:采⽤特征点进⾏初步筛选,⽐如先对⽐四个⾓和中⼼位置
b. 图⽚内容重复多时容易匹配多个结果:在截取模板时可以适度截⼤⼀些,多增加整个模板的特征点
隧道式搪瓷烧结炉c. 移动端的图像识别特点:有很多图像⽐例变化的情况
2. OpenCV常⽤API
1) matchTemplate,包含三个参数,要对⽐的图像和模板图像,method参数是模板匹配的算法,主要有六种:
a) 利⽤平⽅差进⾏匹配,最好为0,匹配越差,匹配值越⼤
CV.TM_SQDIFF 平⽅差匹配
CV.TM_SQDIFF_NORMED 标准平⽅差匹配
b) 采⽤模板和图像间的乘法操作,数越⼤表⽰匹配程度越⾼,0为最坏
CV.TM_CCORR 相关性匹配
CV.TM_CCORR_NORMED 标准相关性匹配
c) 将模板对其均值的相对值与图像对其均值的相对值进⾏匹配,1表⽰完美匹配,0表⽰没有任何相关性(随机序列)
CV.TM_CCOEFF 相关系数匹配
CV.TM_CCOEFF_NORMED 标准相关系数匹配
返回值为⼀个矩阵,矩阵为每个像素点上模板匹配的结果
六种⽅法算法复杂度越来越⾼,精度也越来越⾼,运算开销越来越多
2) minMaxLoc,在给定矩阵中寻最⼤和最⼩值,并给出它们的位置,要求传⼊参数有src,是⼀个矩阵图像(⼆维数            组),返回值为⼀个元祖类型的数据,分别为min_val, max_val, min_loc, max_loc
3. OpenCV使⽤范例
# 算法思路:
# 1.使⽤ImageGrab抓取当前窗⼝的截图
# 2.使⽤opencv进⾏截图与模板的匹配
# 3.处理匹配结果,进⾏断⾔
import cv2 as cv
import os
from PIL import ImageGrab
class ImageMatchByCV:
@staticmethod中草药压片机
def match_image(target):
"""对⽐当前窗⼝与模板,到返回中⼼点坐标,未到返回-1,-1"""
摩托车化油器结构图
# 抓取当前屏幕截图
screen_path = os.path.join(base_path, "screen.png")
# 使⽤opencv打开模板图⽚与截图
screen = cv.imread(screen_path)
template = cv.imread(target)
# 进⾏⽐对
match_results = cv.matchTemplate(screen, template, cv.TM_CCOEFF_NORMED)        # 处理⽐对结果
min_val, max_val, min_loc, max_loc = cv.minMaxLoc(match_results)
if max_val >= 0.95:
middle_x = max_loc[0] + int(template.shape[1] / 2)
middle_y = max_loc[1] + int(template.shape[0] / 2)
return middle_x, middle_y
else:
print("Failed")
return -1, -1
def check_exists(self, target):
"""对⽐模板与当前窗⼝截图,返回bool值"""
x, y = self.match_image(target)
return x != -1 and y != -1
>煎药锅

本文发布于:2024-09-23 10:21:37,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/292333.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:匹配   模板   图像
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议