前言:
如今姐妹们对“opencv 相似图匹配搜索”都比较着重,各位老铁们都需要学习一些“opencv 相似图匹配搜索”的相关文章。那么小编同时在网络上搜集了一些对于“opencv 相似图匹配搜索””的相关内容,希望咱们能喜欢,各位老铁们一起来学习一下吧!实验名称:基于模板图片的相似区域识别
实验目的:识别模板图片在目标图片中的相似部分
实验设计或方案:采用开源框架OpenCvSharp,二维码图片为目标对象,通过对图像进行二值化处理后,查找出图像轮廓。
实验时间:2022-04-08
实验材料:电脑+数字图片
实验方法:通过开源的OpenCvSharp框架,用同一个模板来匹配多个相似目标,函数返回为多个目标对应的分数。识别相似度99%以上的区域,将识别结果标识显示于原图上。
实验过程:学习OpenCvSharp的基本使用方法,需要学习掌握的函数(MatchTemplate,MinMaxLoc)
观察指标:完整描绘出图片中和模板图片中相似度超过99%的所有区域。
实验结果和结果分析:成功识别出图片中和模板图片中相似度超过99%的所有区域,并且在原图标识出来。
模板图片:
识别效果图:
核心函数“MinMaxLoc”的说明资料,自于网络检索摘抄。
函数原型:
void minMaxLoc( const Mat& src, double* minVal, double* maxVal=0, Point* minLoc=0, Point* maxLoc=0, const Mat& mask=Mat() );
void minMaxLoc(const MatND& src, double* minVal, double* maxVal, int* minIdx=0, int* maxIdx=0, const MatND& mask=MatND() );
void minMaxLoc(const SparseMat& src, double* minVal, double* maxVal, int* minIdx=0, int* maxIdx=0);
参数解释
参数1:InputArray类型的src,输入单通道数组(图像)。
参数2:double类型的minVal,返回最小值的指针。若无须返回,此值置为NULL。参数3:double类型的maxVal,返回最大值的指针。若无须返回,此值置为NULL。
参数4:Point类型的minLoc,返回最小位置的指针(二维情况下)。若无须返回,此值置为NULL。参数5:Point类型的maxLoc,返回最大位置的指针(二维情况下)。若无须返回,此值置为NULL。
参数6:InputArray类型的mask,用于选择子阵列的可选掩膜。
说明:
1 minMaxLoc寻找矩阵(一维数组当作向量,用Mat定义) 中最小值和最大值的位置.
2 参数若不需要,则置为NULL或者0,即可.
3 minMaxLoc针对Mat和MatND的重载中 ,第5个参数是可选的(optional),不使用不传递即可.
PS:minMaxLoc针对单通道图像,minMaxIdx则不限制(不过输出的坐标会变成三维)。
标签: #opencv 相似图匹配搜索