基于HALCON 20.0和VS2019,C#中直接使用HSmartWindowControl高级控件,可以直接对图片进行鼠标拖动及滚轮缩放功能,双击图片可恢复默认图像尺寸和比例,非常方便。 代码中以模板匹配功能为例,提供了整套应用流程,可供初学者参考。 解决了HSmartWindowControl控件无法正常使用绘图功能的缺陷,采用巧妙方式进行ROI绘制和模板生成。
2022-11-11 09:19:30 643KB C# HALCON 机器视觉 HSmartWindowCont
1
对机器视觉在工业零件检测中的应用做了研究。在大批量的工业生产中,某个细微零件的缺失如果不应用机器视觉系统,将会浪费很大的人力物力,因此根据现阶段工业零件检测对智能零件缺失检测的需求,运用图像处理技术,在检测对象的标准样本中截取模板,利用零件的边缘特征,进行零件的模板匹配,进而检测出零件是否缺失。
2022-11-05 17:59:20 356KB 工程技术 论文
1
基于MATLAB的车牌识别,可以将字符提取分割,得到想要的数字。Based on matlab license plate recognition, characters can be extracted and segmented to get the desired number.
2022-10-30 19:26:21 10.5MB 车牌识别
1
halcon模板匹配的详细例子
2022-10-28 09:28:57 2.06MB 视觉算法
1
基于图形处理器单元(GPU)提出了一种帧间差分与模板匹配相结合的运动目标检测算法。在CUDA-SIFT(基于统一计算设备架构的尺度不变特征变换)算法提取图像匹配特征点的基础上,优化随机采样一致性算法(RANSAC)剔除图像中由于目标运动部分产生的误匹配点,运用背景补偿的方法将静态背景下的帧间差分目标检测算法应用于动态情况,实现了动态背景下的运动目标检测,通过提取目标特征与后续多帧图像进行特征匹配的方法最终实现自动目标检测。实验表明该方法对运动目标较小、有噪声、有部分遮挡的图像序列具有良好的目标检测效果。
1
#模板匹配 import cv2 as cv import numpy as np def template_demo(): dog = cv.imread("E:/opencv/picture/dog.jpg") dog_nose = cv.imread("E:/opencv/picture/nose.jpg") cv.imshow("dog",dog) result = cv.matchTemplate(dog,dog_nose,cv.TM_CCORR_NORMED) h,w =dog_nose.shape[:2] min_val,max_val,min_loc,max_loc=cv.minMaxLoc(result) pt1 = max_loc pt2 = (pt1[0]+w,pt1[1]+h) cv.rectangle(dog,pt1,pt2,(0,255,0),2) cv.imshow("match",dog) print(result) #src = cv.imread("E:/opencv/picture/dog.jpg") #cv.imshow("inital_window",src) template_demo() cv.waitKey(0) cv.destroyAllWindows() 分析: 模板匹配通常用于目标检测。本文我们检测狗图片的鼻子。 • 我们需要两个主要组件: 1. 源图像(I):我们期望找到与模板图像匹配的图像 2. 模板图像(T):将与模板图像进行比较的补丁图像 1. result = cv.matchTemplate(dog,dog_nose,cv.TM_CCORR_NORMED) void cv::matchTemplate( cv::InputArray image, // 待匹配图像W*H cv::InputArray templ, // 模板图像,和image类型相同, 大小 w*h cv::OutputArray result, // 匹配结果图像, 类型 32F, 大小 (W-w+1)*(H-h+1) int method // 用于比较的方法 ); 其中method有: TM_SQDIFF_NORMED匹配数值越低表示匹配效果越好 TM_CCORR_NORMED,TM_CCOEFF_NORMED匹配数值越大表示匹配效果越好 result参数:(保存各个点匹配结果的参数) 模板匹配函数cvMatchTemplate依次计算模板与待测图片的重叠区域的相似度,并将结果存入映射图像result当中,也就是说result图像中的每一个点的值代表了一次相似度比较结果 模板在待测图像上每次在横向或是纵向上移动一个像素,并作一次比较计算 我们可以通过cv.minMaxLoc函数来确定结果矩阵的最大值和最小值的位置。 2. cv.minMaxLoc(result) 返回result数值中最小值以及最小值所在的位置和最大值以及最大值所在的位置。 3. 当知道哪个点匹配度最高时这个时候我们需要用矩阵把模板给标出来 C++: void rectangle(Mat& img, Point pt1,Point pt2,const Scalar& color, int thickness=1, int lineType=8, int shift=0) 第一个参数:要在哪个图像上画? 第二个参数:矩阵的左上角点坐标 第三个参数:矩阵的右下角点坐标 第四个参数:颜色
2022-10-22 12:01:12 20KB opencv
1
基于模板匹配法的模式识别系统设计与实现代码大全.docx基于模板匹配法的模式识别系统设计与实现代码大全.docx基于模板匹配法的模式识别系统设计与实现代码大全.docx
1
模板匹配MATLAB实现及算法优化.doc
2022-10-16 13:00:09 140KB 互联网
1
模板匹配,是通过计算模板和图像的相似度来实现的。多角度,多种方法来实现匹配对应的模板。方法如下:(1)基于灰度值的模板匹配;( 2)基于图形金字塔的模板匹配;(3)带旋转与缩放的模板匹配;(4)基于边缘的模板匹配
2022-10-16 09:07:20 10.6MB 模板匹配 机器视觉 金字塔模板匹配
1