halcon-boundary提取边界_灰度图像

在HDevelop中

4.jpg

halcon-boundary提取边界_灰度图像_02



dev_open_window(10,10,307,221,'black',WindowHandle)
read_image (Image, 'D:/bb/tu/4.jpg')
rgb1_to_gray(Image,Image1)
*将RGB图像转换为灰度图像

threshold (Image1, Region, 60, 100)

set_color(WindowHandle,'blue')

boundary (Region, RegionBorder, 'outer')
*提取边界
*参数1:要计算其边界的区域
*参数2:保存边界区域
*参数3:边界类型
* 'inner' 内边界--默认:轮廓位于原始区域内
* 'inner_filled' 内部孔的边界:
* 'outer' 外边界:轮廓位于原始区域外一个像素


dev_display (RegionBorder)


参数3是'outer'

halcon-boundary提取边界_灰度图像_03

参数3是'inner_filled'

halcon-boundary提取边界_灰度图像_04





在QtCreator中

HObject  ho_Image, ho_Image1, ho_Region, ho_RegionBorder;
HTuple hv_WindowHandle;
SetWindowAttr("background_color","black");
OpenWindow(10,10,307,221,0,"visible","",&hv_WindowHandle);

ReadImage(&ho_Image, "D:/bb/tu/4.jpg");
Rgb1ToGray(ho_Image, &ho_Image1);
//将RGB图像转换为灰度图像

Threshold(ho_Image1, &ho_Region, 60, 100);

SetColor(hv_WindowHandle, "blue");

Boundary(ho_Region, &ho_RegionBorder, "outer");
//提取边界
//参数1:要计算其边界的区域
//参数2:保存边界区域
//参数3:边界类型
// 'inner' 内边界--默认:轮廓位于原始区域内
// 'inner_filled' 内部孔的边界:
// 'outer' 外边界:轮廓位于原始区域外一个像素

SetPart(hv_WindowHandle,0, 0, 221, 307);
//修改图像在激活窗口的显示区域
DispObj(ho_RegionBorder, hv_WindowHandle);


halcon-boundary提取边界_灰度图像_05