php app网站建设,企业网络营销系统分析报告,上海网站建设 方案,哪个网站做logo设计背景
我想实现一个功能#xff0c;获取图片中瑕疵的位置#xff0c;将瑕疵周边的一块区域抠图并保存。
上代码
一开始我代码这么写的#xff1a;
gen_circle (Rectangle, Row[i], Column[i], 256) reduce_domain(Image,Rectangle,GrayEllipse) crop_domain(GrayEllipse,…背景
我想实现一个功能获取图片中瑕疵的位置将瑕疵周边的一块区域抠图并保存。
上代码
一开始我代码这么写的
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配合使用。