HALCON:Variation Model用法解析

HALCON:Variation Model用法解析

Variation Model的主要原理是将待检测的图像与一张标准图像作比较,找出待检测图像与标准图像(ideal image)的明显差异(也就是不良)。标准图像可以采用几张OK品的图像训练(training)得到,也可以通过对一张OK品图像进行处理得到。训练后得到标准图像和一张variation图像(variation image),variation图像中包含了图像中每个像素点灰度值允许变化的范围。标准图像和variation图像用来创建一个variation model,如此,其他图像就可以与variation model作比较了。

Variation Model方法中常用的算子:

create_variation_model( : : Width, Height, Type, Mode : ModelID)

说明:创建一个IDModelID,宽为Width,高为Height,类型为TypeVariation Model,参数Mode决定了创建标准图像和相应的variation图像的方法。'standard'表示标准的训练方法,标准图像的位置是各训练图像位置的平均,'robust'表示鲁棒的训练方法,标准图像的位置是各训练图像的中值,此模式在训练图像中可能存在ERROR时使用,'direct'表示标准图像由单张图像经过处理得到,由此方法得到的标准图像只能应用prepare_direct_variation_model算子得到variation model

 

train_variation_model(Images : : ModelID : )

说明:训练一个Variation Model

 

get_variation_model( : Image, VarImage : ModelID : )

说明:返回variation model中的标准图像(Image)和variation imageVarImage),此算子主要用来检视创建的variation model是否OK

 

prepare_variation_model( : : ModelID, AbsThreshold, VarThreshold : )

说明:设置variation model的绝对阈值和相对阈值。绝对阈值即待检测图像与标准图像的差值,相对阈值即待检测图像与variation modelVarThreshold乘绩的差值。

 

clear_train_data_variation_model( : : ModelID : )

说明:清除variation model的训练数据所占用的内存。

 

compare_variation_model(Image : Region : ModelID : )

说明:待检测图像与variation model进行比较,超过阈值的区域在Rgion参数中返回。同threshold一样,返回的区域被看做一个区域,可以使用connection算子进行连通性分析,然后根据区域的特征(如面积)对区域进行选择。

 

clear_variation_model( : : ModelID : )

说明:释放一个variation model的内存空间

 

【注】在model训练和比较的时候,常常需要对图像进行模板匹配,以使图像准确对齐。

 

【总结】Variation Model使用标准图像与待检测图像灰度值相比较,来判断产品是否OK,适用于印刷品检测及产品表面检测。从实际算法过程可以看出,此检测实际可分为两部分,对于图像中的大面积灰度一致区域,主要利用待检测图像与标准图像(ideal image)比较得出差异区域,对于图像中的边缘位置(edges)区域,主要利用待检测图像与Variation图像(variation image)比较得出差异区域。所以在实际应用中,应根据实际情况设置AbsThresholdVarThreshold的值。

【转载】http://blog.sina.com.cn/s/blog_802a94a20102v10y.html

### 图像处理中的缺陷检测方法 #### 基于MATLAB的图像处理技术 对于机件表面缺陷检测的研究涵盖了多个基础算法的应用,这些算法包括但不限于图像滤波、图像增强、形态学处理以及边缘检测等[^1]。每种算法都有其特定的作用,在实际应用中通常会组合使用以达到最佳效果。 #### Halcon中的Variation Model实现 在Halcon环境下,一种有效的缺陷检测手段是利用Variation Model来对比待测图片同标准样本之间的不同之处,以此判定是否存在瑕疵。此过程涉及严格的光环境控制,并且要求被检对象能良好地与参照物对准以便精确测量差异程度。具体操作上分为两个主要阶段——模型构建及其后的测试验证环节[^3]。 #### Opencv下的C++编程实践 采用OpenCV库配合C++语言可以高效地模拟上述提到的Halcon Variation Model工作原理。这涉及到一系列步骤如初始化并训练好相应的模板之后再执行实时监控任务期间内的数据配准作业,确保每次获取的新图样都能准确无误地映射到既定的标准之上进行细致入微的变化捕捉。 #### Blob分析结合ROI区域差分策略 另一种常见的做法是从输入源读取影像资料后立即开展Blob(二值连通域)解析活动,进而圈定感兴趣区(Region of Interest),随后针对选定范围实施逐像素级别的减法运算或是拿它跟完好状态下的同类物件相比较找出异同点所在。最终依据所得差距大小决定产品合格与否的状态评估结论[^4]。 #### 综合性图像处理框架概述 整个图像处理流水线由几个关键部分构成:首先是借助专门设备抓拍下来的原始素材导入内存空间;其次是运用各种预置函数优化画质质量使之更利于下一步骤的操作需求;最后则是深入挖掘图形内部结构特性并通过统计学习机制做出分类决策支持业务逻辑层面的功能诉求响应[^5]。 ```cpp // C++ & OpenCV 实现简单版本的 ROI 差分检测 #include <opencv2/opencv.hpp> using namespace cv; using namespace std; int main() { Mat img1 = imread("standard_image.jpg", IMREAD_GRAYSCALE); // 标准图像 Mat img2 = imread("test_image.jpg", IMREAD_GRAYSCALE); // 待测图像 if (img1.empty() || img2.empty()) { cout << "Could not open or find the images!" << endl; return -1; } resize(img2, img2, img1.size()); // 调整尺寸一致 absdiff(img1, img2, img2); // 计算绝对差值 threshold(img2, img2, 60, 255, THRESH_BINARY); // 阈值化处理突出变化部位 imshow("Defect Detection Result", img2); waitKey(0); return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值