开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 9639|回复: 5
收起左侧

[技术专题] Halcon缺陷检测实例转易语言---瓶口缺陷检测

[复制链接]
结帖率:87% (79/91)
发表于 2022-8-22 11:08:18 | 显示全部楼层 |阅读模式   江苏省苏州市
效果图:
QQ图片20220822110747.png

  
窗口程序集名保 留  保 留备 注
程序集1   
子程序名返回值类型公开备 注
_启动子程序整数型 本子程序在程序启动后最先执行
变量名类 型静态数组备 注
图片多维矩阵类 
' 更多测试图片到百d网盘下载
' 网盘地址见 群文件
' img = 视觉_图像读取 (“C:\Users\hanyo\Desktop\瓶口缺陷检测\imgs\bottle_mouth_14.png”, #读图_彩色)
. ' 如果真 (图片.空 ())
' 瓶口 (img)

' img = 视觉_图像读取 (“C:\Users\hanyo\Desktop\瓶口缺陷检测\imgs\bottle_mouth_16.png”, #读图_彩色)
. ' 如果真 (图片.空 ())
' 瓶口_霍夫 (img)

图片 = 视觉_图像解码 ( #图片1, #读图_彩色 )
瓶口_霍夫 (图片)
视觉_显示图像 (“小白鼠”, 图片)
视觉_等待按键 (0)
视觉_销毁所有窗口 ()
返回 (0)  ' 可以根据您的需要返回任意数值
子程序名返回值类型公开备 注
瓶口  
参数名类 型参考可空数组备 注
输入图多维矩阵类
变量名类 型静态数组备 注
HSV_下标量类 
HSV_上标量类 
HSV_图多维矩阵类 
蒙版多维矩阵类 
轮廓集点2i二维数组类 
i整数型 
最大外接矩形矩形2i类 
最大外接矩形2矩形2i类 
中心点2f类 
半径小数型 
感兴区域多维矩阵类 
阈值_中心点2f类 
极坐标变换多维矩阵类 
灰度多维矩阵类 
均值多维矩阵类 
绝对差异多维矩阵类 
阈值多维矩阵类 
轮廓2点2i二维数组类 
极坐标变换_反多维矩阵类 
HSV_下.初始化 (0, 0, 0, )
HSV_上.初始化 (180, 255, 45, )
视觉_颜色空间转换 (输入图, HSV_图, #颜色_BGR转HSV, 0)
视觉_在范围内 (HSV_图, HSV_下, HSV_上, 蒙版)
视觉_中值滤波 (蒙版, 蒙版, 3)
' 视觉_显示图像 (“mask”, mask)
视觉_查找轮廓 (蒙版, 轮廓集, , #检测_外部, #逼近_任何, )
计次循环首 (轮廓集.尺寸 (), i)
最大外接矩形 = 视觉_最大轮廓矩形V (轮廓集, i)
如果真 (最大外接矩形.宽度 > 150 最大外接矩形.高度 > 150)
视觉_最小包围圆形V (轮廓集, i, 中心, 半径)
跳出循环 ()

计次循环尾 ()
输入图.感兴区域 (最大外接矩形).复制 (感兴区域, )
' 视觉_显示图像 (“ROI”, ROI)
阈值_中心.初始化 (中心.左边 - 最大外接矩形.左边, 中心.顶边 - 最大外接矩形.顶边)
视觉_极坐标变换 (感兴区域, 极坐标变换, 尺寸2i (300, 600), 阈值_中心, 半径, #插值_双线性二次#变换_极坐标 )
' 视觉_显示图像 (“polarImg”, polarImg)
视觉_颜色空间转换 (极坐标变换, 灰度, #颜色_BGR转GRAY, 0)
' 视觉_显示图像 (“flip”, gray)
视觉_均值滤波 (灰度, 均值, 尺寸2i (3, 501), , 4)
' 视觉_显示图像 (“blur”, blur)
视觉_绝对差异 (灰度, 均值, 绝对差异)
' 视觉_显示图像 (“diff”, diff)
视觉_阈值 (绝对差异, 阈值, 55, 255, #阈值_二进制 )
视觉_中值滤波 (阈值, 阈值, 3)
视觉_查找轮廓 (阈值, 轮廓2, , #检测_外部, #逼近_任何, )
计次循环首 (轮廓2.尺寸 (), i)
最大外接矩形2 = 视觉_最大轮廓矩形V (轮廓2, i)
如果真 (最大外接矩形2.宽度 > 10)
视觉_绘制轮廓 (极坐标变换, 轮廓2, i, 标量 (0, 0, 255), 2, 8, , 2147483647, )

计次循环尾 ()
视觉_极坐标变换 (极坐标变换, 极坐标变换_反, 尺寸2i (最大外接矩形.宽度, 最大外接矩形.高度), 阈值_中心, 半径, #插值_双线性二次#变换_极坐标#变换_逆变换 )
' 视觉_显示图像 (“thres”, thres)
' 视觉_显示图像 (“rgb_img”, polarImg)
视觉_显示图像 (“polarImg_Inv”, 极坐标变换_反)
子程序名返回值类型公开备 注
瓶口_霍夫  
参数名类 型参考可空数组备 注
图片多维矩阵类
变量名类 型静态数组备 注
图片备份多维矩阵类 
灰度多维矩阵类 
圆信息数组三维小数类0
是否NG逻辑型 
i整数型 
矩形区域矩形2i类 
中心点2i类 
半径小数型 
感兴区域多维矩阵类 
阈值中心点2f类 
极变换多维矩阵类 
均值多维矩阵类 
绝对差多维矩阵类 
二值化多维矩阵类 
轮廓点2i二维数组类 
最大外接矩形矩形2i类 
极变换_反多维矩阵类 
输出感兴区域多维矩阵类 
图片蒙版多维矩阵类 
轮廓ID整数型 
j整数型 
标签尺寸尺寸2i类 
图片.复制 (图片备份, )
视觉_颜色空间转换 (图片, 灰度, #颜色_BGR转GRAY, 0)
视觉_中值滤波 (灰度, 灰度, 3)
圆信息 = 视觉_霍夫圆 (灰度, #霍夫_梯度, 1, 100, 200, 30, 150, 150)
判断 (取数组成员数 (圆信息) = 0)
视觉_控制台输出 (“找圆失败!”, )
返回 ()
计次循环首 (取数组成员数 (圆信息), i)
视觉_圆 (图片备份, 点2i (圆信息 [i].值1 (), 圆信息 [i].值2 ()), 圆信息 [i].值3 (), 标量 (0, 0, 255), 3, #线类型_抗锯齿, 0)
视觉_圆 (图片备份, 点2i (圆信息 [i].值1 (), 圆信息 [i].值2 ()), 2, 标量 (0, 0, 255), 3, #线类型_抗锯齿, 0)
轮廓ID = i
计次循环尾 ()
' 视觉_显示图像 (“findCircle”, img_copy)
矩形区域.初始化 (圆信息 [轮廓ID].值1 () - 圆信息 [轮廓ID].值3 (), 圆信息 [轮廓ID].值2 () - 圆信息 [轮廓ID].值3 (), 2 × 圆信息 [轮廓ID].值3 (), 2 × 圆信息 [轮廓ID].值3 ())
中心.初始化 (圆信息 [轮廓ID].值1 (), 圆信息 [轮廓ID].值2 ())
半径 = 圆信息 [轮廓ID].值3 ()
图片.感兴区域 (矩形区域).复制 (感兴区域, )
' 视觉_显示图像 (“ROI”, ROI)
阈值中心.初始化 (中心.左边 - 矩形区域.左边, 中心.顶边 - 矩形区域.顶边)
视觉_极坐标变换 (感兴区域, 极变换, 尺寸2i (300, 600), 阈值中心, 半径, #插值_双线性二次#变换_极坐标 )
' 视觉_显示图像 (“polarImg”, polarImg)
视觉_颜色空间转换 (极变换, 灰度, #颜色_BGR转GRAY, 0)
视觉_均值滤波 (灰度, 均值, 尺寸2i (3, 501), , 4)
' 视觉_显示图像 (“blur”, blur)
视觉_绝对差异 (灰度, 均值, 绝对差)
' 视觉_显示图像 (“diff”, diff)
视觉_阈值 (绝对差, 二值化, 55, 255, #阈值_二进制 )
视觉_中值滤波 (二值化, 二值化, 3)
视觉_查找轮廓 (二值化, 轮廓, , #检测_外部, #逼近_任何, )
计次循环首 (轮廓.尺寸 (), i)
最大外接矩形 = 视觉_最大轮廓矩形V (轮廓, i)
如果真 (最大外接矩形.宽度 > 13)
视觉_绘制轮廓 (极变换, 轮廓, i, 标量 (0, 0, 255), 2, 8, , 2147483647, )
是否NG = 真

计次循环尾 ()
视觉_极坐标变换 (极变换, 极变换_反, 尺寸2i (矩形区域.宽度, 矩形区域.高度), 阈值中心, 半径, #插值_双线性二次#变换_极坐标#变换_逆变换 )
' 视觉_显示图像 (“thres”, thres)
' 视觉_显示图像 (“rgb_img”, polarImg)
' 视觉_显示图像 (“polarImg_Inv”, 极变换_反)
输出感兴区域 = 图片.感兴区域 (矩形区域)
图片蒙版.初始化 (极变换_反.行数 (), 极变换_反.列数 (), #Cv无符号字节型, )
视觉_圆 (图片蒙版, 点2i (圆信息 [轮廓ID].值1 () - 矩形区域.左边, 圆信息 [轮廓ID].值2 () - 矩形区域.顶边), 圆信息 [轮廓ID].值3 (), 标量 (255), -1, #线类型_抗锯齿, 0)
' 视觉_显示图像 (“mask_img”, 图片蒙版)
极变换_反.复制 (输出感兴区域, 图片蒙版)
' 视觉_显示图像 (“cutROI”, cutROI)
判断 (是否NG)
标签尺寸 = 视觉_获取文本尺寸 (“'Result->NG”, #字体_衬线_简单, 1, 2, )
视觉_矩形 (图片, 矩形2i (500, 20, 标签尺寸.宽 × 0.7, 标签尺寸.高), 标量 (212, 233, 252), -1, 8, 0)
视觉_放置文本 (图片, “Result->NG”, 点2i (500, 15 + 标签尺寸.高), #字体_衬线_简单, 0.7, 标量 (0, 0, 255), 2, 8, )
标签尺寸 = 视觉_获取文本尺寸 (“'Result->OK”, #字体_衬线_简单, 1, 2, )
视觉_矩形 (图片, 矩形2i (500, 20, 标签尺寸.宽 × 0.7, 标签尺寸.高), 标量 (212, 233, 252), -1, 8, 0)
视觉_放置文本 (图片, “Result->OK”, 点2i (500, 15 + 标签尺寸.高), #字体_衬线_简单, 0.7, 标量 (0, 255), 2, 8, )


i支持库列表   支持库注释   
OpenCV(未知支持库)


结帖率:67% (2/3)
发表于 2024-9-24 11:31:53 | 显示全部楼层   广东省佛山市
回复 支持 反对

使用道具 举报

签到天数: 2 天

发表于 2024-8-24 11:01:39 | 显示全部楼层   重庆市重庆市
66666666666666666666666666666
回复 支持 反对

使用道具 举报

签到天数: 2 天

发表于 2024-8-23 16:53:12 高大上手机用户 | 显示全部楼层   吉林省长春市
6666666666666666666
回复 支持 反对

使用道具 举报

结帖率:87% (79/91)

签到天数: 8 天

 楼主| 发表于 2022-9-11 15:24:14 | 显示全部楼层   江苏省苏州市
1061250149 发表于 2022-8-22 14:34
厉害,这是那个版本的HALCON

opencv  仿的   
回复 支持 反对

使用道具 举报

结帖率:60% (3/5)

签到天数: 7 天

发表于 2022-8-22 14:34:11 | 显示全部楼层   广东省深圳市
厉害,这是那个版本的HALCON
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表