设置首页收藏本站在线聊天
授权版本:2024_09
开启左侧

AutoThreshold

[复制链接]
李明 发表于 2022-3-4 09:31:13 | 显示全部楼层 |阅读模式
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



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


奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
Criss 发表于 2022-3-4 10:58:12 | 显示全部楼层
HDevelop中自动显示了颜色的,联合编程(VC++、C#、QT等联合Halcon开发)中的所有对象都必须显式设置,比如你这个颜色要设置其他其他颜色请自行更改,默认是白色。
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 李明 发表于 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());


复制代码



设置颜色之后,还是一片空白?
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 李明 发表于 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++试试,窗口是不是空白 ?
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
 楼主| 李明 发表于 2022-3-6 09:28:21 | 显示全部楼层
我好想有点明白了:在C++中区域默认是白色,而自动阈值的区域包含整个图像,所以整个区域都是白色   是这样吗  ??
奖励计划已经开启,本站鼓励作者发布最擅长的技术内容和资源,流量变现就在现在,[点我]加入吧~~~Go
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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