图像处理模块
概述
参考:
图像处理模块下还有很多分类
- Image Filtering(图像过滤)
- Geometric Image Transformations(几何图像变换)
- Miscellaneous Image Transformations(各种图像转换)
- Drawing Functions(绘图功能)
- Color Space Conversions(色彩空间转换)
- ColorMaps in OpenCV(OpenCV 中的颜色图)
- Planar Subdivision(平面细分)
- Histograms(直方图)
- Structural Analysis and Shape Descriptors(结构分析和形状描述符)
- Motion Analysis and Object Tracking(运动分析和对象跟踪)
- Feature Detection(特征检测)
- Object Detection(物体检测)
- Image Segmentation(图像分割)
- C API
- Hardware Acceleration Layer(硬件加速层)
Object Detection(对象检测)
参考:
OpenCV 实现 Object detection(对象检测) 的能力,是通过模板匹配技术查找与模板图像(补丁)匹配(相似)的图像区域。
- Source image(源图像) (I) # 我们期望在其中找到与模板图像匹配的图像。一般就是大图、或者说背景图。
- Template image(模板图像)(T) # 将与源图像进行比较的补丁图像。一般是较小的图片。
我们的目标是在源图像中检测到与模板图像的最佳匹配区域。比如这样:
左边的大图是 I,中间的小图是 T。(x2 是什么意思不知道)。右边的是找到的图像区域。i.e. 在 I 中找到 T,用红框标出来
为了识别匹配区域,通过 sliding(滑动) 模板图像,以便与源图像进行比较。所谓的滑动,意思是将 T 一次移动一个像素(从左到右,从上到下)。我们将这个滑动的模板图像称为 patch,patch 每移动一次,在当前位置,会根据 Match mode(匹配模式) 计算一个 metric(度量) 值以表示该位置的匹配程度是 “好”或“坏”(可以理解为模板图像在源图像的某个特定区域的相似程度)。除了计算出来的 metric,还有 patch 左上角顶点的 横/纵坐标。
对于 I 上 T 的每个位置,都会保存一份 metric 到 result matrix(结果矩阵) R 中。
下图是使用 TM_CCORR_NORMED 匹配方法滑动 T 的结果 R。通过 minMaxLoc()
函数可以定位到红色圆圈标记的矩形左上角的横纵坐标,该位置就是对于 T 来说在 I 上的最佳匹配位置。黑色矩形就是匹配到的图像区域(之所以能画出来这个匹配到的矩形区域,是因为基于左上角这个点,使用模板图像的宽和高,即可画出来这个矩形)。
在实践中
- 首先使用
matchTemplate()
函数进行匹配并获取匹配到的图像区域,函数接受 3 个参数:源图像、模板图像、匹配方法。 - 然后使用
minMaxLoc()
函数从匹配到的图像区域中定位 R 矩阵中的最高值或最低值,和匹配到该值的图像区域,这个结果只是针对匹配到的图像区域的左上角的信息,- min_val 和 max_val 是根据算法得到的最好匹配结果或者最差匹配结果(不用的匹配方法,对于结果值的解读不同)
- min_loc 和 max_loc 是对应图像区域的左上角的横/纵坐标。
# 返回一个结果矩阵 R
matchedResult = cv2.matchTemplate(source_img, temp_img, cv2.TM_CCOEFF_NORMED)
# 返回 patch 的最大值和最小值,以及这两个值所在位置的横纵坐标
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(late)
其中匹配方式指的是一种数学公式(高数),也可以称为 匹配算法、匹配模式。共有 6 中匹配方法,不同的计算方式产生的结果的意义不一样。有些返回值越大表示匹配度越高,而有些返回值越小表示匹配程度越好:
- TM_SQDIFF # 平方差匹配法:该方法采用平方差来进行匹配;0 表示最好的匹配结果;数值越小,匹配效果越好。
- TM_SQDIFF_NORMED # 标准平方差匹配法
- TM_CCORR # 相关匹配法:该方法采用乘法操作;0 表示最坏的匹配结果;数值越大,匹配效果越好
- TM_CCORR_NORMED # 标准相关匹配法
- TM_CCOEFF # 相关系数匹配法:1 表示完美的匹配;-1 表示最差的匹配,0 表示没有任何相关性(随机序列)。数值越大,匹配效果越好
- TM_CCOEFF_NORMED # 标准相关系数匹配法
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.