图片裁剪_浅谈图片的裁剪,一个公式,三个算子搞定绝大多数裁剪

本文介绍了机器视觉中Halcon库用于图片裁剪的方法,包括reduce_domain()和crop_domain()组合使用的万能公式,以及直接裁剪边缘的算子。通过实例展示了如何裁剪指定宽度、多个矩形区域的图片,提供了高效处理图片裁剪问题的解决方案。
摘要由CSDN通过智能技术生成

机器视觉之halcon入门(29)-浅谈图片的裁剪

(1)

有一个图片裁剪的万能公式:

reduce_domain()+crop_domain()

reduce_domain大家很熟悉了,就是给一张图片,给一个region,然后把图片里面region意外的地方像素灰度值信息都删除,只保留位于region内部的像素点的值,虽然图片灰度值信息变小了,但是图片的大小并没有变,所以还需要第二步crop_domain()。这个算子的意思是:先对图片中有灰度值信息的地方求最小外接矩形,然后把图片裁剪成这个矩形的大小,注意:1)最小外接矩形只能是水平的,2)经过这一步图片的大小发生了变化。具体效果如下:

87e65ab5b4dc9e8dd1842e18c8ed3aa0.png

在图中画了一个倾斜的矩形region

3ae76a9befecd5eff49113ffa8078f43.png

reduce_domain()后的效果,图片的尺寸没有变化

cdaf5db6107a50491f2477b540fc8da6.png

crop_domain()后的效果

(2)

使用这个万能公式,需要有region,还需要两行代码,不是所有的时候都很方便,例如我要把当前图片左边30列像素裁剪掉呢?如果用下面这个算子一步就搞定:

cb6e7f58e9c619976ff47b308adc1ae0.png

这个算子的意思是,直接从图片的四条边进行裁剪。前两个参数含义一目了然了,第三个到最后一个参数,就是分别在图片的上左下右四个方向的裁剪像素值,如果要实现刚刚例子里面的情况,只要把第四个参数left设为30就可以了。不裁剪的边,直接设为0或者负数都可以。

(3)

会了这两个算子,基本上90%的裁剪都能满足了,但是有时候还会有一些奇葩的要求,比如我要把下图中七个彩色矩形的区域分别裁剪下来成小图片

bab7bbd765c357be16c116cc51beca34.png

可能下面这个算子可以避免你循环裁剪

5ff12d7954c2e7fad65a476bb3a13399.png

只要把每个矩形的左上角和右下角的坐标填入第三到第六个参数里面即可。输出的ImagePart就会是一个容器,里面图片的数量取决于你的矩形个数。n个矩形的参数填写方式如下:

ea2c8db929de298448224a257e044cae.png

当然,如果你只知道要裁剪的矩形的长宽和左上角点的坐标,也可以用下面这个算子:

4dc632e015ff00e9ca56f89b87ca6421.png

跟上面那个一样的效果,只是参数表达方式不一样而已。

谢谢阅读,希望对大家有一点帮助!

1

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值