halcon connection_halcon例程——表面划痕检测

该例程代码位于halcon范例的表面检测->surface_scratch.hdev,通过局部二值化和形态学后处理实现表面划痕提取。

关健代码如下:

(1)读取图像

read_image (Image, 'surface_scratch')

fec00f79b2f3a208a685838525685866.png

带划痕的图像Image

(2)局部二值化

mean_image (Image, ImageMean, 7, 7) * 均值滤波

dyn_threshold (Image, ImageMean, DarkPixels, 5, 'dark') * 动态二值化

1503826bee9fd6abdd7a3e1985ae4412.png

二值化图像ImageMean

connection (DarkPixels, ConnectedRegions) * 提取连通域

ad74c2aa0a590b4ea5f6f3ef3aca3ba3.png

连通区域ConnectedRegions

(3)处理区域

先选择大区域:

select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 10, 1000)

a260a85dc7cb265e065646bcb9cbd885.png

SelectedRegions

通过形态学处理合并碎片化的划痕区域,用于把不连续的相邻的点连接起来:

union1 (SelectedRegions, RegionUnion)

dilation_circle (RegionUnion, RegionDilation, 3.5)

475f59dede50ee09e45690b7952db9d3.png

RegionDilation

提取骨架并提取连通域:

skeleton (RegionDilation, Skeleton)

connection (Skeleton, Errors)

5fe759ed0135d1b97f3112c185a377eb.png

Errors

最终结果显示如下图,其中,第一幅图为原图,第二幅图为提取到的划痕

3ac24c4367f310e3ed77f81112f158f7.png

原图

6c3a6d44177d1077e244c07711da2909.png

划痕

Halcon是一款图像处理软件,可以用于图像识别、字符识别、物体检测等多种领域。基于Halcon的字符识别可以通过以下步骤实现: 1. 装载图像:使用Halcon的read_image函数读取图像。 2. 预处理图像:使用Halcon的preprocessing函数对图像进行预处理,例如灰度化、二值化等。 3. 定位字符:使用Halcon的find_text函数对字符进行定位。 4. 分割字符:根据字符的位置信息,使用Halcon的crop_rectangle函数将字符从原图像中分割出来。 5. 特征提取:对分割出来的字符进行特征提取,例如使用Halcon的moments函数计算Hu不变矩。 6. 训练分类器:使用Halcon的svm_train函数训练分类器。 7. 字符识别:使用Halcon的svm_classify函数对新的字符进行识别。 下面是一个基于Halcon的字符识别的示例代码: ```python read_image(Image, 'characters.png') preprocessing(Image, Image, 'gray') threshold(Image, BinaryImage, 128, 255) reduce_domain(BinaryImage, Region, 100, 100, 200, 200) find_text(Region, TextRegions, 'auto', 'black', ['lines_gaps'], [30, 10], [30, 10]) num_chars := number_of_text(TextRegions) for i := 1 to num_chars crop_rectangle(Image, CharImage, TextRegions[i]) moments(CharImage, Moments) hu_moments(Moments, HuMoments) svm_classify(HuMoments, 'trained_classifier.svm', Result) write_string(Result) endfor ``` 在该代码中,首先读取图像并进行预处理,然后使用find_text函数定位字符并分割出来。接着,对每个字符进行特征提取,并使用svm_classify函数进行识别。最终输出识别结果。 需要注意的是,该示例代码仅供参考,实际应用中还需要根据具体情况进行调整和优化。同时,也需要准备好训练数据集,以便训练分类器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值