news 2026/4/16 21:02:40

Halcon彩图阈值分割、腐蚀和膨胀、顶帽和底帽处理、求图像边界轮廓

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Halcon彩图阈值分割、腐蚀和膨胀、顶帽和底帽处理、求图像边界轮廓

*彩图阈值分割:

•彩图转灰图:rgb1_to_gray ()
•从彩图当中提取3个通道的图像:decompose3 ()
•合并两个通道的算子:compose2()
•合并三个通道的算子,又合并为之前的彩图:compose3()
•获取图像是有几个通道组成的:count_channels ()
•通过索引值提取通道对应的图像:access_channel ()
•展示图像:dev_display()
*// 读取一张照片 read_image (Image1, 'claudia') *// 彩图转灰图 rgb1_to_gray (Image1, GrayImage) *// 从彩图当中提取3个通道的图像 decompose3 (Image1, Image11, Image2, Image3) *// 合并多个通道的图像 compose2 (Image11, Image2, MultiChannelImage)//compose2合并两个通道的算子 compose3 (Image11, Image2, Image3, MultiChannelImage1)//compose3合并三个通道的算子,又合并为之前的彩图 *// 展示合并之后的图像 dev_display (MultiChannelImage1) *// 获取图像是有几个通道组成的 count_channels (MultiChannelImage1, Channels)//3 *// 通过索引值提取通道对应的图像 access_channel (Image1, Image4, 3)

*腐蚀和膨胀:

•圆形的腐蚀 :erosion_circle ()
•形态学膨胀:dilation_circle ()
•形态学开运算(先腐蚀后膨胀):opening_circle ()
•形态学闭运算(先膨胀后腐蚀):closing_circle ()
*// 获取照片 read_image (Image, 'pcb_layout') *// 阈值分割 threshold (Image, Region, 0, 128) *// 圆形的腐蚀 半径是3.5 erosion_circle (Region, RegionErosion, 3.5) *// 形态学膨胀 dilation_circle (Region, RegionDilation, 3.5) *// 形态学开运算(先腐蚀后膨胀) opening_circle (Region, RegionDilation, 3.5) *// 形态学闭运算(先膨胀后腐蚀) closing_circle (RegionDilation, RegionClosing, 3.5)

*顶帽和底帽:

•创建一个顶帽的参考图:gen_disc_se()
•获取某个点灰度值的算子:get_grayval()
•灰度顶帽变换:gray_tophat()
•灰度开运算:gray_opening ()
•灰度底帽变换:gray_bothat ()
•灰度闭运算:gray_closing()
* ============================================== *// 顶帽(gray_tophat) & 底帽(gray_bothat) 原理验证 *// 顶帽公式:ImageTopHat = Image - ImageOpening (开运算) *// 底帽公式:ImageBottomHat = ImageClosing (闭运算) - Image * ============================================== *// 清空窗体 dev_clear_window () *// 获取照片 read_image (Image, 'printer_chip/printer_chip_01') *// 获取图片大小 get_image_size (Image, Width, Height) *// 显示图片 dev_display (Image) *// 创建一个顶帽/底帽的参考图(结构元素) *// byte: 图像的类型,字节类型 *// 21, 21: 参考图的大小 *// 10: 圆盘的半径 *// 255: 参考图的颜色灰度值 gen_disc_se (SE, 'byte', 21, 21, 255) *// ============ 顶帽操作验证 ============ *// 对图像进行顶帽操作 *// 参数1 目标图像进行顶帽处理 *// 参数2 结构图 可以通过gen_disc_se创建一个结构图 *// 参数3 顶帽之后的图像 gray_tophat (Image, SE, ImageTopHat) *// 灰度的开运算 gray_opening (Image, SE, ImageOpening)//21*21 *// 计算差值图像:Image - ImageOpening sub_image (Image, ImageOpening, ImageDiff1, 1, 0) *// 显示顶帽操作结果 dev_display (ImageTopHat) *// 显示差值 dev_display (ImageDiff1) *// ============ 底帽操作验证 ============ *// 对图像进行底帽操作 gray_bothat (Image, SE, ImageBotHat) *// 闭运算(用于验证) gray_closing (Image, SE, ImageClosing) *// 计算差值图像:ImageClosing - Image sub_image (ImageClosing, Image, ImageDiff2, 1, 0) *// 显示底帽操作结果 dev_display (ImageBotHat) *// 显示差值 dev_display (ImageDiff2) *// ============ 灰度值验证 ============ *// 选择中心点进行验证 Row := Height/2 Col := Width/2 *// 获取各个图像的灰度值 get_grayval (Image, Row, Col, Grayval_Original) get_grayval (ImageOpening, Row, Col, Grayval_Opening) *// ============ 应用示例 ============ *// 顶帽应用:提取亮的小物体(比如芯片上的标记) *// 通过顶帽增强原始图像中的亮细节 add_image (Image, ImageTopHat, ImageEnhanced1, 1, 0) *// 底帽应用:提取暗的小物体(比如缺陷) *// 通过底帽增强原始图像中的暗细节 add_image (Image, ImageBotHat, ImageEnhanced2, 1, 0)

*求边界轮廓:

•裁剪图像:reduce_domain()
•找外边界轮廓:boundary (, , 'outer')

*// 获取图片//--------------------- read_image (Image, 'fabrik') *// 阈值//--------------------- threshold (Image, Region, 80, 110) *// 连通//--------------------- connection (Region, ConnectedRegions) *// 面积筛选//--------------------- select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 40000, 99999) *// 形态学处理//--------------------- *// 打开运算 先腐蚀后膨胀, *// 参数1 对目标区域进行开运算 *// 参数2 开运算之后的 *// 参数3 腐蚀形状的半径 opening_circle (SelectedRegions, RegionOpening, 3.5) *// 形状变换的算子 把开运算之后的图像进行变换成其他形状//--------------------- *// 'rectangle1' 转换的形状类型 矩形 shape_trans (RegionOpening, RegionTrans, 'rectangle1') *// 裁剪图像 根据形状变换之后的矩形来去裁剪//--------------------- reduce_domain (Image, RegionTrans, ImageReduced) *// 阈值//--------------------- threshold (ImageReduced, Region1, 80, 255) *// 找内边界轮廓//--------------------- boundary (Region1, RegionBorder, 'inner') *// 找外边界轮廓//--------------------- boundary (Region1, RegionBorder2, 'outer')

希望对大家有所帮助, 感谢大家的关注和点赞。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 2:24:05

Java AI应用框架:企业级实践与技术演进

html一份手写答卷在AI系统的处理下,自动完成阅卷;一份会议录音上传后,几分钟内生成结构化的会议纪要——这些场景背后,是Java技术团队如何将AI能力系统性地融入企业应用的技术探索。01 技术范式演进:从工具到框架面对A…

作者头像 李华