Halcon视觉之家-Halcon视觉技术论坛

 找回密码
 会员注册

QQ登录

只需一步,快速开始

扫一扫,微信登录

查看: 715|回复: 4

[已解决] AutoThreshold

[复制链接]

该用户从未签到

18

主题

34

帖子

89

积分

Rank: 1

积分
89
发表于 2022-3-4 09:31:13 | 显示全部楼层 |阅读模式

51Halcon诚邀您的加入,专注于机器视觉开发与应用技术,我们一直都在努力!

您需要 登录 才可以下载或查看,没有账号?会员注册

x
本帖最后由 李明 于 2022-3-6 09:28 编辑

C++代码
  1.     ReadImage(&ho_Image, "D:/bb/tu/1.jpg");
  2.     Rgb1ToGray(ho_Image, &ho_Image1);
  3.     //将RGB图像转换为灰度图像

  4.     GetImageSize(ho_Image1, &hv_Width, &hv_Height);
  5.     SetWindowAttr("background_color","black");
  6.     OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle);
  7.     HDevWindowStack::Push(hv_WindowHandle);

  8.     AutoThreshold(ho_Image1, &ho_Regions, 5);
  9.     //自动全局阈值--【根据灰度值分割成多个区域】
  10.     //参数2:输出区域
  11.     //参数3:高斯滤波的标准差--越大提取区域越少
  12.     //      【标准差在值内的归为同一个区域】

  13.     if (HDevWindowStack::IsOpen())
  14.       DispObj(ho_Regions, HDevWindowStack::GetActive());

复制代码


qq.jpg



我的问题:区域在窗口中 一片空白  ??


签到天数: 72 天

连续签到: 3 天

[LV.6]常住居民II

446

主题

1877

帖子

8559

积分

Rank: 9

积分
8559

突出贡献优秀版主荣誉管理论坛元老切换助手验证会员最佳新人

发表于 2022-3-4 10:58:12 | 显示全部楼层
HDevelop中自动显示了颜色的,联合编程(VC++、C#、QT等联合Halcon开发)中的所有对象都必须显式设置,比如你这个颜色要设置其他其他颜色请自行更改,默认是白色。
无效附件更新 权限提升操作 删帖申请 举报以及其他需要帮助请加入QQ群:214663141 广告位招商 有意者联系

该用户从未签到

18

主题

34

帖子

89

积分

Rank: 1

积分
89
 楼主| 发表于 2022-3-5 06:33:46 | 显示全部楼层
  1.     ReadImage(&ho_Image, "D:/bb/tu/1.jpg");
  2.     Rgb1ToGray(ho_Image, &ho_Image1);
  3.     //将RGB图像转换为灰度图像

  4.     GetImageSize(ho_Image1, &hv_Width, &hv_Height);
  5.     SetWindowAttr("background_color","black");
  6.     OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle);
  7.     HDevWindowStack::Push(hv_WindowHandle);

  8.     AutoThreshold(ho_Image1, &ho_Regions, 10);
  9.     //自动全局阈值--【根据灰度值分割成多个区域】
  10.     //参数2:输出区域
  11.     //参数3:高斯滤波的标准差--越大提取区域越少
  12.     //      【标准差在值内的归为同一个区域】


  13.     SetColor(hv_WindowHandle, "blue");
  14.     if (HDevWindowStack::IsOpen())
  15.       DispObj(ho_Image1, HDevWindowStack::GetActive());

  16.     SetWindowAttr("background_color","black");
  17.     OpenWindow(10,100,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle1);
  18.     HDevWindowStack::Push(hv_WindowHandle1);
  19.     if (HDevWindowStack::IsOpen())
  20.       DispObj(ho_Regions, HDevWindowStack::GetActive());


复制代码



设置颜色之后,还是一片空白?

该用户从未签到

18

主题

34

帖子

89

积分

Rank: 1

积分
89
 楼主| 发表于 2022-3-5 06:35:46 | 显示全部楼层
  1. dev_update_off()

  2. read_image (Image, 'D:/bb/tu/1.jpg')
  3. rgb1_to_gray(Image,Image1)
  4. *将RGB图像转换为灰度图像

  5. get_image_size (Image1, Width, Height)
  6. dev_open_window(10,10,Width, Height,'black',WindowHandle)

  7. auto_threshold (Image1, Regions, 10)
  8. *自动全局阈值--【根据灰度值分割成多个区域】
  9. *参数2:输出区域
  10. *参数3:高斯滤波的标准差--越大提取区域越少
  11. *       【标准差在值内的归为同一个区域】

  12. dev_display(Image1)

  13. dev_open_window(10,100,Width, Height,'black',WindowHandle1)
  14. dev_display(Regions)

复制代码


这是halcon中的代码,哪位兄弟导出c++试试,窗口是不是空白 ?

该用户从未签到

18

主题

34

帖子

89

积分

Rank: 1

积分
89
 楼主| 发表于 2022-3-6 09:28:21 | 显示全部楼层
我好想有点明白了:在C++中区域默认是白色,而自动阈值的区域包含整个图像,所以整个区域都是白色   是这样吗  ??
您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

视觉培训招生
论坛下线通知X

建议您使用Chrome、Firefox、Edge、360、IE10以上等主流浏览器浏览本论坛

算子查询| 申请友链| 小黑屋| 手机版| Archiver| 业务支持|

© 2015-2021 Halcon视觉之家  X3.4  粤ICP备15095995号 粤公网安备44030602000670号

本站已安全运行:

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