python图像识别匹配_Python 模板匹配 匹配多个 识别多个图形

本文介绍了Python中使用OpenCV进行图像识别匹配的方法,特别是模板匹配技术,包括TM_SQDIFF、TM_CCORR和TM_CCOEFF_NORMED等不同匹配方式,并通过代码示例展示了如何进行多图形的匹配与定位。最后,文章提供了匹配后的图像保存和显示过程。
摘要由CSDN通过智能技术生成

识别技巧:

小图的选择,尽可能的选择最核心的部分,要保证大图里面每个元素有包含了小图

小图特点:小、每个图都能匹配到、取核心部分

匹配的几种方式:

1、TM_SQDIFF:平方差匹配;

TM_SQDIFF_NORMED:标准平方差匹配。

利用平方差来进行匹配,最好匹配为0.匹配越差,匹配值越大。

2、TM_CCORR:相关性匹配;

TM_CCORR_NORMED:标准相关性匹配。

采用模板和图像间的乘法操作,数越大表示匹配程度较高, 0表示最坏的匹配效果。

3、TM_CCOEFF:相关性系数匹配;

TM_CCOEFF_NORMED:标准相关性系数匹配。

将模版对其均值的相对值与图像对其均值的相关值进行匹配,

1表示完美匹配,-1表示糟糕的匹配,0表示没有任何相关性(随机序列)。

总结:随着从简单的测量(平方差)到更复杂的测量(相关系数),我们可获得越来越准确的匹配(同时也意味着越来越大的计算代价)。

说明:

原图(大图):big.jpg

模板(小图):smart.jpg

importcv2importnumpy as npfrom matplotlib importpyplot as plt#原文:https://www.cnblogs.com/gezhuangzhuang/p/10724769.html#原文:https://blog.csdn.net/qq_21840201/article/details/85084621

#1. 读入原图和模板

img_rgb &

可以使用OpenCV库来实现多个颜色和形状的识别。具体步骤如下: 1. 读取图片并将其转换为HSV色彩空间。 2. 分别定义不同颜色和形状的颜色范围和形状模板。 3. 对图片进行颜色过滤,提取出符合颜色范围的像素。 4. 对过滤后的图像进行形状检测,找出符合形状模板的对象。 5. 在原图上标记出符合条件的对象。 以下是一个简单的代码示例,可以根据实际情况做出相应的调整: ```python import cv2 import numpy as np # 定义颜色范围和形状模板 color_ranges = [ ((0, 100, 100), (10, 255, 255)), # 红色 ((30, 100, 100), (60, 255, 255)), # 绿色 ((90, 100, 100), (120, 255, 255)), # 蓝色 ] shape_template = cv2.imread("shape_template.png", cv2.IMREAD_GRAYSCALE) # 读取图片并转换为HSV色彩空间 image = cv2.imread("image.jpg") hsv = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # 遍历每种颜色范围,找出符合条件的像素 for color_range in color_ranges: mask = cv2.inRange(hsv, color_range[0], color_range[1]) contours, _ = cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) # 遍历每个轮廓,找出符合形状模板的对象 for contour in contours: area = cv2.contourArea(contour) if area < 100: # 忽略面积较小的轮廓 continue x, y, w, h = cv2.boundingRect(contour) roi = hsv[y:y+h, x:x+w] shape_result = cv2.matchTemplate(roi, shape_template, cv2.TM_CCOEFF_NORMED) if np.max(shape_result) > 0.8: # 如果匹配结果大于阈值,则认为是符合形状模板的对象 cv2.rectangle(image, (x, y), (x+w, y+h), (255, 0, 0), 2) cv2.imshow("result", image) cv2.waitKey(0) cv2.destroyAllWindows() ``` 其中,颜色范围可以根据需要自行调整,形状模板可以通过绘制图形并保存为灰度图像来生成。在实际应用中,可能需要对算法进行进一步的优化和调整,以达到更好的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值