Halcon图像预处理-感兴趣区域(ROI)


前言

       ROI是Halcon中的一个很重要的概念,为了减少计算量,只关注待检测物体或该物体周围的一片区域即可,ROI就是图像处理所关注的区域。


一、ROI的意义

       创建ROI主要是出于以下两个方面的原因。
       1)、因为将要处理的图像缩减到了ROI区域,需要处理的像素数减少了,对于ROI外的像素可以不处理,因此可以加快图像处理的速度。如果原图是1920像素x1280像素,那么对整幅图像进行处理的计算量是非常大的,而需要关注的区域可能只是图像中的某一部分,因此将这部分区域裁剪出来进行处理,可以减少计算量,提高效率。
       2)、由于ROI可以作为形状模板,因此在模板匹配时,ROI即为匹配搜索的参考图像。

二、创建ROI

1.ROI实现

       在采集到原始图像后,即可选择关注的区域作为ROI。ROI可以是任何形状,常规的有矩形、圆形、椭圆,可以是自定义的或者是通过图像处理得出的特定区域。此时,选择的区域还不能称为ROI,它还只是形状或者说是像素范围。如果要将这部分区域变成独立的图像,还需要将其从原图上裁剪出来。
       ROI的范围明确后,在Halcon中可以通过 reduce domain算子将其截取出来成为单独的一幅图片。需要注意的是,通过reduce_domain确实能获得特定区域Region位置的图像。但是,reduce_domain是缩小一个图像的定义域,并不缩小图像的实际尺寸,即新图像ImageReduced尺寸大小并未发生变化。如果使用get_image_size来计算ImageReduced图像的尺寸,其尺寸和原图Image一样。
       如果需要对图像尺寸进行裁剪,可以使用crop_domain算子。crop_domain能够对图像的尺寸进行剪裁。而且,其一系列的domain算子均能对图像尺寸进行剪裁。

2.示例

       代码如下:

dev_close_window()
read_image(Image, 'display')
get_image_size(Image, Width, Height)
dev_open_window(0, 0, Width, Height, 'black', WindowHandle)
dev_display(Image)
gen_rectangle1(Rectangle, 30, 20, 450, 560)
reduce_domain(Image, Rectangle, ImageReduced)
dev_open_window(0, 0, Width, Height, 'black', WindowHandle1)
dev_display(ImageReduced)

       效果如图所示:
在这里插入图片描述

总结

参考文章:
1.Halcon中 reduce_domain算子和crop_domain算子的使用及配合
2.Halcon机器视觉算法原理与编程实战/杨青编著.北京大学出版社

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值