halcon学习拓展系列—黄色区域分割算子get_yellow_region

本文深入探讨了Halcon的颜色分割算子get_yellow_region在汽车连接件镀铜检测中的应用。通过decompose3和trans_from_rgb算子进行颜色处理,实现黄色区域的精确分割。强调了光源选择的重要性,建议使用高品质碗光源以减少反光并避免颜色干扰。同时指出,针对不同颜色的分割,可探索不同颜色空间以找到最佳对比效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

* IC检查 **** 1、读取图片并显示 **************************** dev_close_window () read_image (Image, './ic.png') get_image_size (Image, Width, Height) dev_open_window (0, 0, Width, Height, 'black', WindowID) dev_set_draw ('fill') dev_set_part (0, 0, Height - 1, Width - 1) dev_display (Image) dev_set_colored (12) **** 2、彩色图片 转换为hsv分量 **************************** * 彩色图片抽取 RGB decompose3 (Image, Red, Green, Blue) * RGB 转换为 HSV图片 Hue 色度 Saturation饱和度 Intensity 亮度 trans_from_rgb (Red, Green, Blue, Hue, Saturation, Intensity, 'hsv') **** 3、饱和度图片 获取红色矩形区域 **************************** * 使用饱和度图片 红色区域 threshold (Saturation, Colored, 100, 255) * 色度图片中 聚焦红色区域 reduce_domain (Hue, Colored, HueColored) * 二值化 黑色区域(红色) threshold (HueColored, Red, 10, 19) * 连通域分析 connection (Red, RedConnect) * 挑选电阻红色标识区域 select_shape (RedConnect, RedLarge, 'area', 'and', 150.000000, 99999.000000) * 电阻外接矩形 shape_trans (RedLarge, Resistors, 'rectangle2') dev_clear_window () dev_set_draw ('margin') dev_display (Image) dev_display(Resistors) **** 4、饱和度图片 获取蓝色标签区域 **************************** * 二值化 threshold (HueColored, BlueLabel, 114, 137) * 连通域分析 connection (BlueLabel, BlueConnect) * 连通域挑选(面积筛选) select_shape (BlueConnect, BlueLarge, 'area', 'and', 150.000000, 99999.000000) * 最小外接矩形 shape_trans (BlueLarge, Capacitors, 'rectangle2') **** 5、亮度图片 获取芯片主体区域 **************************** * Intensity亮度图片 暗区芯片主体 threshold (Intensity, Dark, 0, 50) * 芯片主体 矩形膨胀 dilation_rectangle1 (Dark, DarkDilation, 14, 14) * 连通域分析 connection (DarkDilation, ICLarge) * 亮度图中 每个连通域获取灰度图 add_channels (ICLarge, Intensity, ICLargeGray) * 二值化(芯片主体) threshold (ICLargeGray, ICDark, 0, 50) * 获取外接矩形 shape_trans (ICDark, IC, 'rectangle2') **** 6、芯片PIN接口区域 **************************** * 芯片区域左右膨胀 dilation_rectangle1 (IC, ICDilation, 5, 1) * 芯片左右搜索区域中心线 difference (ICDilation, IC, SearchSpace) * 搜索区域膨胀(中心线) dilation_rectangle1 (SearchSpace, SearchSpaceDilation, 14, 1) * 合并搜索膨胀区 union1 (SearchSpaceDilation, SearchSpaceUnion) * 获取搜索灰度图 reduce_domain (Intensity, SearchSpaceUnion, SearchGray) * 动态二值化 mean_image (SearchGray, SearchMean, 15, 15) dyn_threshold (SearchGray, SearchMean, PinsRaw, 5.000000, 'light') * 连通域分析 connection (PinsRaw, PinsConnect) * 填充连通域 fill_up (PinsConnect, PinsFilled) * 面积筛选 PIN select_shape (PinsFilled, Pins, 'area', 'and', 10, 100) **** 7、显示结果 **************************** * 显示IC区域 dev_display (Image) dev_set_draw ('margin') dev_set_line_width (3) dev_set_color ('red') dev_display (IC) * 显示红色矩形区域 dev_set_color ('green') dev_display (Resistors) * 显示标签 dev_set_color ('blue') dev_display (Capacitors) * 显示pin dev_set_color ('yellow') dev_display (Pins)
最新发布
05-14
### Halcon IC 图像处理代码实现与解释 以下是基于 Halcon 的图像处理流程,包括读取图片、颜色转换、区域提取以及结果显示的操作。每一步都附带详细的说明。 #### 1. **读取图像** 通过 `read_image` 函数加载一张图像文件并将其存储在一个变量中。 ```hdevelop read_image (Image, 'path/to/image.png') ``` 此函数用于从指定路径读取图像数据,并返回一个名为 `Image` 的对象表示该图像[^1]。 --- #### 2. **灰度转换** 如果输入图像是彩色的,则需要先将其转换为灰度图像以便后续处理。 ```hdevelop rgb1_to_gray (Image, GrayImage) ``` 这里调用了 `rgb1_to_gray` 方法来完成 RGB 到灰度的颜色空间变换。灰度化可以减少计算复杂度,同时保留足够的特征信息[^3]。 --- #### 3. **获取图像尺寸** 为了进一步操作,通常需要知道当前图像的高度和宽度。 ```hdevelop get_image_size (GrayImage, Width, Height) ``` 这段代码会返回两个参数——图像的实际宽高值 (`Width`, `Height`),这对于定义新图像或者裁剪感兴趣区域非常有用[^1]。 --- #### 4. **阈值分割** 应用二值化技术分离前景目标物与背景噪声。 ```hdevelop threshold (GrayImage, Region, 0, 50) ``` 这里的 `threshold` 命令设置了一个范围 `[0, 50]` 来区分像素亮度低于或等于 50 的部分作为有效区域 `Region`[^3]。 --- #### 5. **生成空白画布** 创建一个新的初始化为空白状态的新图像实例用来绘制最终结果。 ```hdevelop gen_image_const (BlankImage, 'byte', Width, Height) ``` 利用固定大小及模式构建一幅全零矩阵形式的基础底板即 `BlankImage`,准备接受来自其他运算产生的图形覆盖上去[^1]. --- #### 6. **填充兴趣区** 将之前获得的目标边界框填满特定数值形成闭合形状。 ```hdevelop paint_region (Region, BlankImage, ResultImage, 255, 'fill') ``` 在此处我们采用白色(RGB=255)完全涂覆选定区域内所有位置点从而突出显示检测出来的物体轮廓[^1]。 --- #### 7. **展示输出成果** 最后把经过一系列预处理后的成品呈现在屏幕上供观察验证效果如何。 ```hdevelop dev_display(ResultImage) ``` 借助开发环境自带的功能快速可视化刚才所做的一切更改情况便于调试分析[^4]。 --- ### 总结 以上就是一套完整的 HALCON 平台下针对集成电路(IC)芯片表面缺陷自动识别系统的典型工作流演示过程。它涵盖了基本的数据导入导出机制;色彩模型切换策略;形态学滤波器设计原理等方面的知识要点。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

谷棵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值