halcon 电气柜绿灯位置安装是否正确

在这里插入图片描述

思路:

  1. 找到电气柜的区域
  2. 根据绿色通道对绿色敏感,找到绿色按钮
  3. 特征过滤,与空对象相比,确定绿色按钮是否存在
  4. 填充后截取出来,转为亚像素,筛选和计算中心点
  5. 中心点是否在规定区域内
*关闭窗口
dev_close_window()
read_image(image, 'F:/xue_xi/彩色按钮.jpg')
get_image_size(image, Width, Height)
*打开窗口
dev_open_window_fit_image(image, 0, 0, Width, Height, windowHandle)

*显示图片
dev_display(image)

*分割通道
decompose3(image, ImageR, ImageG, ImageB)

*---------------------------------------------------
*选取电气柜的区域
*转灰度图
rgb1_to_gray(image, GrayImages)

* 二值化
threshold(ImageB, RegionBox, 50, 128)

*填充
fill_up(RegionBox, RegionFillUp)
*截取填充区域
reduce_domain (image, RegionFillUp, ImageReduced)
*---------------------------------------------------

*在电气柜中找绿色相关

* 二值化
threshold(ImageReduced, RegionButton, 0, 50)

*选择绿色通道 截取
reduce_domain (ImageG, RegionButton, ImageReducedGreenButton)

*二值化
threshold (ImageReducedGreenButton, GreeButtonRegion, 56, 255)

* 分离非连通域
connection(GreeButtonRegion, ConnectedRegions)

*特征筛选
select_shape(ConnectedRegions, SelectedRegions, 'area', 'and', 200, 99999)

*-----------------------------------------------------------------------
*判读按钮是否与空对象相等,若相等,那么按钮则不存在

*生成一个空对象
gen_empty_obj(Emptyobject)
*对比 返回1为真 0为假
test_equal_obj(SelectedRegions, Emptyobject, IsEqual)


*填充按钮区域
fill_up(SelectedRegions, FilledGreenButtom)

*截取
reduce_domain(GrayImages, FilledGreenButtom, ImageReducedGreenButtinFilled)


*转换亚像素精度
threshold_sub_pix(ImageReducedGreenButtinFilled, Border, 82)

* 筛选XLD特征
select_shape_xld(Border, SelectedXLD, 'area', 'and', 100, 99999)

* 计算绿色按钮的中心位置
area_center_points_xld (SelectedXLD, Area, Row, Column)

* 设置字体
set_display_font (windowHandle, 14, 'mono', 'true', 'false')
* 显示数字
disp_message (windowHandle, 'x='+Column+','+'y='+Row+'\n'+'面积='+ Area, 'image', Row+20, Column, 'black',  'true') 


*定一个范围:130,170--150,190
i:=0
if (Row < 150 and Row >130 and  Column > 170 and Column < 190)
    i:=1
    disp_message (windowHandle, '合格', 'image', Row+40, Column-60, 'black',  'true') 

endif
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

默执_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值