目录
导读
OpenCV有专门的函数drawContours()来绘制检测得到的轮廓,可以设置颜色、线宽或者填充绘制。
Halcon中如何将提取或分离的Region绘制到图像上并保存?可以使用paint_region()算子来实现!
RGB彩色图上绘制Region并保存
以下图为例:
填充绘制:
dev_get_window (WindowHandle)
try
read_image (Image, 'lena.png')
catch(Exception)
disp_message (WindowHandle, Exception, 'window', 12, 12, 'black', 'true')
endtry
rgb1_to_gray (Image, GrayImage)
fast_threshold (GrayImage, Regions, 128, 255, 20)
connection(Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 100, 1.55539e+06)
select_shape (SelectedRegions, SelectedRegions1, 'contlength', 'and', 200.2, 13008.85)
select_shape (SelectedRegions1, SelectedRegions2, 'ratio', 'and', 0.5784, 33.4445)
get_image_size (GrayImage, Width, Height)
paint_region (SelectedRegions2, Image, ImageResult, [0, 255, 0], 'fill')
边缘绘制:
paint_region (SelectedRegions2, Image, ImageResult, [0, 255, 0], 'margin')
单通道灰度图上绘制Region并保存
以下图为例:
填充绘制:
dev_get_window (WindowHandle)
try
read_image(Image, 'printer_chip/printer_chip_01')
catch(Exception)
disp_message (WindowHandle, Exception, 'window', 12, 12, 'black', 'true')
endtry
fast_threshold (Image, Regions, 128, 255, 20)
connection(Regions, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 100, 1.55539e+06)
select_shape (SelectedRegions, SelectedRegions1, 'contlength', 'and', 200.2, 13008.85)
select_shape (SelectedRegions1, SelectedRegions2, 'ratio', 'and', 0.5784, 33.4445)
get_image_size (Image, Width, Height)
paint_region (SelectedRegions2, Image, imgR, 0, 'fill')
paint_region (SelectedRegions2, Image, imgG, 255, 'fill')
paint_region (SelectedRegions2, Image, imgB, 0, 'fill')
compose3 (imgR, imgG, imgB, MultiChannelImage)
边缘绘制:
paint_region (SelectedRegions2, Image, imgR, 0, 'margin')
paint_region (SelectedRegions2, Image, imgG, 255, 'margin')
paint_region (SelectedRegions2, Image, imgB, 0, 'margin')
compose3 (imgR, imgG, imgB, MultiChannelImage)
遗留问题:
在使用'margin'参数绘制Region边缘时,默认绘制宽度是1,分辨率高的图像上容易看不到,暂未找到好的方法......