首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

halcon中胶路检测,工业贴膜,脏污检测,二维测量,缺陷检测,MTF,图像清晰度,双目测距,Fov等算法

一、胶路检测

核心算子:

reate_bead_inspection_model` + `apply_bead_inspection_model`halcon

* 创建胶路检测模型

gen_contour_nurbs_xld(ContourRef, 701.767,626.953..., 319.24,336.133..., 'auto', 15,15..., 3, 1, 5)

create_bead_inspection_model(ContourRef, TargetWidth, WidthTolerance, PositionTolerance, Polarity, , , BeadInspectionModel)

* 图像校正与检测

align_bead(Image, ImageAligned, ModelID, RowT, ColumnT)

apply_bead_inspection_model(ImageAligned, BeadInspectionModel, DefectRegions)

关键参数:`PositionTolerance`控制胶路位置偏差容忍度,`WidthTolerance`控制胶宽误差范围^1^2

二、工业贴膜检测

方法:模板匹配差分法

halcon

* 模板匹配定位

create_shape_model(TemplateImage, 'auto', 0, rad(360), 'auto', 'auto', 'use_polarity', ModelID)

find_shape_model(TestImage, ModelID, 0, rad(360), 0.8, 1, 0.5, 'least_squares', Row, Column, Angle)

* 差集运算检测缺陷

affine_trans_region(TemplateRegion, TransRegion, TransMatrix, 'nearest_neighbor')

difference(TestRegion, TransRegion, DefectRegions)

优势:可检测贴膜破损、气泡等局部形变缺陷^7

---

三、脏污检测

方法1:动态阈值法(适合随机脏污)

halcon

mean_image(Image, ImageMean, 31, 31)

dyn_threshold(Image, ImageMean, DirtyRegions, 15, 'light')

opening_circle(DirtyRegions, CleanRegions, 3.5)

方法2:频域滤波(适合周期性背景)

halcon

fft_image(GrayImage, ImageFFT)

gen_gauss_filter(Filter, 50, 50, 0, 'none', 'rft', Width, Height)

convol_fft(ImageFFT, Filter, ImageConvol)

fft_image_inv(ImageConvol, ImageInv)

threshold(ImageInv, DirtyRegions, 50, 255)

适用场景:灰尘、油渍等微小异物检测^10^11

---

四、二维测量

亚像素级精度实现:

halcon

create_metrology_model(MetrologyHandle)

add_metrology_object_circle_measure(MetrologyHandle, Row, Column, Radius, 30, 5, 1, 30, , , Index)

apply_metrology_model(Image, MetrologyHandle)

get_metrology_object_result(MetrologyHandle, Index, 'all', 'radius', Result)

精度控制:`measurelength1`参数调整测量区域密度^13^14

---

五、缺陷检测

方法1:形态学差异(表面划痕)

halcon

mean_image(Image, ImageMean, 31, 31)

dyn_threshold(Image, ImageMean, RegionDynThresh, 15, 'dark')

opening_circle(RegionDynThresh, DefectRegions, 3.5)

方法2:深度学习(复杂缺陷)

halcon

read_dl_model('defect_detection.hdl', DLModelHandle)

apply_dl_model(Image, DLPreprocessParam, DLResult)

get_dict_tuple(DLResult, 'defect_regions', DefectRegions)

对比:传统方法实时性强,深度学习适合复杂纹理缺陷^5^8

---

六、MTF(调制传递函数)

清晰度量化评估:

halcon

edges_sub_pix(Image, Edges, 'canny', 1.5, 20, 40)

get_contour_global_attrib_xld(Edges, 'mtf', MTFValue)

评价指标:MTF50值对应空间频率响应衰减到50%时的频率^17

---

七、图像清晰度

评价算子对比:

halcon

* Tenegrad梯度法

sobel_amp(Image, EdgeAmplitude, 'sum_sqrt', 3)

intensity(EdgeAmplitude, EdgeAmplitude, Value, Deviation)

* 方差法

region_to_mean(Image, Image, ImageMean)

sub_image(Image, ImageMean, ImageSub, 1, 0)

mult_image(ImageSub, ImageSub, ImageResult, 1, 0)

应用:自动对焦系统中清晰度峰值搜索^18^19

---

八、双目测距

核心流程:

halcon

binocular_calibration(CalibDataID)  * 双目标定

binocular_disparity(Image1, Image2, Disparity, 'sgm', , )

disparity_to_distance(Disparity, CameraParam, Distance)

精度影响:基线距离和镜头畸变校正精度^22^24

---

九、FOV计算

公式推导:

$$ FOV = 2 \times \arctan\left(\frac{SensorSize}{2 \times FocalLength}\right) $$

Halcon实现:

halcon

get_calib_data(CalibDataID, 'camera', 0, 'params', CameraParam)

focal_length := CameraParam0

sensor_width := CameraParam4

fov := 2 * atan(sensor_width / (2 * focal_length))

应用:视野范围与分辨率匹配计算^14^22

---

关键建议:

1. 胶路/贴膜检测优先使用模板匹配+差分法组合^2^7

2. 高精度测量需配合相机标定与亚像素算法^13^14

3. 复杂缺陷检测推荐传统算法与深度学习融合方案^5^8

4. 实时性要求高的场景避免使用频域变换等复杂运算

完整示例代码可参考Halcon安装目录下的:

- `examples/hdevelop/Applications/Bead-Inspection/apply_bead_inspection_model.hdev`^1

- `solution_guide/vision/code_metrology.hdev`^13

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OR1P0e0T87doErNN3JvaoR-w0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券