背景 我想实现一个功能,获取图片中瑕疵的位置,将瑕疵周边的一块区域抠图并保存。 上代码 一开始我代码这么写的: gen_circle (Rectangle, Row[i], Column[i], 256) reduce_domain(Ima
我想实现一个功能,获取图片中瑕疵的位置,将瑕疵周边的一块区域抠图并保存。
一开始我代码这么写的:
gen_circle (Rectangle, Row[i], Column[i], 256)
reduce_domain(Image,Rectangle,GrayEllipse)
crop_domain(GrayEllipse, ImagePart1)
write_image(ImagePart1, ‘bmp’, 0, ‘monk01.bmp’)
因为 gen_circle 指定的是半径,所以图片大小为512,是完全正确的:
但是图片是找个样子的:(所以我还是生成一个方向的吧)
gen_rectangle2 (Rectangle, Row[i], Column[i], 0, 256, 256)reduce_domain(Image,Rectangle,GrayEllipse)crop_domain(GrayEllipse, ImagePart1)write_image(ImagePart1, 'bmp', 0, 'monk01.bmp')
这回图片是没问题了:
但是,大小居然多了一个像素:
gen_rectangle2 和 gen_circle 的逻辑几乎一样啊:
gen_rectangle2 设置中心点,然后设置半个长和半个宽
gen_circle 设置中心点,然后设置半径
为啥gen_rectangle2 会多一个像素呢?
于是,我改了一下代码:
gen_rectangle2 (Rectangle, Row[i], Column[i], 0, 256-0.5, 256-0.5)reduce_domain(Image,Rectangle,GrayEllipse)crop_domain(GrayEllipse, ImagePart1)write_image(ImagePart1, 'bmp', 0, 'monk01.bmp')
长宽各减去了0.5,然后就得到了512*512的图片了。
这算是halcon的bug吗?哪位大神评论区解释下?
1 首先生成一块区域:如 gen_rectangle2
2 利用区域进行抠图:reduce_domain
3 crop_domain利用reduce_domain抠的图,对原图进行裁剪
4 利用 write_image 保存裁剪后的图片
注意:裁剪图片需要reduce_domain 和 crop_domain配合使用。
来源地址:https://blog.csdn.net/songhuangong123/article/details/132513758
--结束END--
本文标题: [halcon] 局部图片保存 gen_circle 和 gen_rectangle2 对比 这怕不是bug吧
本文链接: https://lsjlt.com/news/382583.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0