halcon-dilation_circle圆形膨胀_灰度图像

膨胀特点:对于填补图像分割后物体的空洞以及区域边界的凹陷区域具有很好的效果

膨胀分类:根据膨胀结构元的形状,在halcon中分为圆形膨胀以及矩形膨胀等

1.jpg

halcon-dilation_circle圆形膨胀_灰度图像_02

膨胀原理看视频:​​https://www.bilibili.com/video/BV1rS4y1g7sf/ ​​   


在HDevelop中

dev_update_off()

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

threshold (Image1, Region, 200, 230)
dilation_circle (Region, RegionDilation, 3.5)
*圆形膨胀
*参数1:需要膨胀的区域
*参数2:输出区域
*参数3:结构元大小



get_image_size (Image1, Width, Height)
dev_open_window(10,10,Width, Height,'black',WindowHandle)
dev_display(Region)
dev_open_window(10,100,Width, Height,'black',WindowHandle1)
dev_display(RegionDilation)


halcon-dilation_circle圆形膨胀_灰度图像_03



在QtCreator中

HObject  ho_Image, ho_Image1, ho_Region, ho_RegionDilation;
HTuple hv_Width, hv_Height, hv_WindowHandle;
HTuple hv_WindowHandle1;
ReadImage(&ho_Image, "D:/bb/tu/1.jpg");
Rgb1ToGray(ho_Image, &ho_Image1);
//将RGB图像转换为灰度图像

Threshold(ho_Image1, &ho_Region, 200, 230);
DilationCircle(ho_Region, &ho_RegionDilation, 3.5);
//圆形膨胀
//参数1:需要膨胀的区域
//参数2:输出区域
//参数3:结构元大小



GetImageSize(ho_Image1, &hv_Width, &hv_Height);
SetWindowAttr("background_color","black");
OpenWindow(10,10,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle);
HDevWindowStack::Push(hv_WindowHandle);
if (HDevWindowStack::IsOpen())
DispObj(ho_Region, HDevWindowStack::GetActive());
SetWindowAttr("background_color","black");
OpenWindow(10,100,hv_Width,hv_Height,0,"visible","",&hv_WindowHandle1);
HDevWindowStack::Push(hv_WindowHandle1);
if (HDevWindowStack::IsOpen())
DispObj(ho_RegionDilation, HDevWindowStack::GetActive());


halcon-dilation_circle圆形膨胀_ide_04