Halcon之将目标区域(Region)放大显示

Halcon之将目标区域(Region)放大显示

注:这里讲的是将Halcon函数生成的region放大显示,不是图像Image放大显示。

如下图所示,当算子生成一个区域region很小且不在图形窗口的中心时,如果想要该区域放大显示该怎么办呢?

Halcon之将目标区域(Region)放大显示_第1张图片

解释说明:上图用的是boundary算子生成了一个边界区域region

解决方法

*获取原图像的宽和高
get_image_size (Image, ImageWidth, ImageHeight)
*计算目标区域的最小外接矩形
smallest_rectangle1 (RegionBorder, Row11, Column11, Row21, Column21)
ZoomHeight := Row2 - Row1 + 1
ZoomWidth := Column2 - Column1 + 1
ZoomFactor := min([ImageWidth / ZoomWidth,ImageHeight / ZoomHeight])
ZoomRow := (Row1 + Row2) / 2
ZoomColumn := (Column1 + Column2) / 2
*修改显示区域
dev_set_part (ZoomRow - ImageHeight / ZoomFactor / 2, ZoomColumn - ImageWidth / ZoomFactor / 2, ZoomRow + ImageHeight / ZoomFactor / 2 - 1, ZoomColumn + ImageWidth / ZoomFactor / 2 - 1)
*清空图像窗口并显示目标区域
dev_clear_window ()
dev_display(RegionBorder)

处理后的效果:

Halcon之将目标区域(Region)放大显示_第2张图片

顺带说一下Halcon算子分割后的图像Image放大显示的处理:

假设用reduce_domain算子分割出一个图像Image,要想讲此区域放大显示,只需要利用crop_domain算子即可实现。

示例:

*读取图像
read_image (Image, 'C:/Users/SUN/Desktop/419/Image_2.bmp')
*画矩形
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
gen_rectangle1 (ModelRegion, Row1, Column1, Row2, Column2)
*分割图像
reduce_domain (Image, ModelRegion, ModelRegionImage)
*讲分割后的图像放大显示
crop_domain (ModelRegionImage, ImagePart)

效果图:(左图为分割后的图像,右图为放大显示后的图像

Halcon之将目标区域(Region)放大显示_第3张图片Halcon之将目标区域(Region)放大显示_第4张图片

你可能感兴趣的:(HALCON)