halcon系列基础之Scale_image_range

一、算子介绍

Scale_image_range(

Image //传入原始图像
ImageScle //灰度转换后的图像
Min    需要转换的最小值
Max    需要转换的最大值

)

算子使用的两种情况:

1.scale_image_range(Image,  imagesacle, 40 ,  100)

将图像当中40-100的灰度元素映射到0-255,小于40为0或者大于100的灰度值为255

2.scale_image_range(Image,  imagesacle, [40 ,10],  [100,200])

将图像中40-100的灰度值映射到10-200,同样小于40和大于200的会被设置为0和255

二、测试代码

gen_image_const (Image, 'byte', 512, 512)
gen_image_proto (Image, ImageCleared, 100)
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
dev_display (ImageCleared)
get_image_size (ImageCleared, Width, Height)
get_domain (ImageCleared, Domain)
get_region_points (Domain, Rows, Columns)
gray:=(Columns/30+5)*10
set_grayval (ImageCleared, Rows, Columns, gray)
*第一种用法
scale_image_range (ImageCleared, ImageScaled1, 100, 150)
*第二种用法
scale_image_range (ImageCleared, ImageScaled, [50,0], [210,160])

(关键点:图像灰度值赋值的过程最好不要用循环,太慢了,根据元组计算出每个元素的灰度值在赋值给图像速度快,在图像处理中减少循环的使用,多用元组)

三、测试结果

第一种情况:

第二种情况:

 通过Scale_image_range算子将图像50-210的灰度值映射在0-160的范围内。

猜你喜欢

转载自blog.csdn.net/qiaodahua/article/details/130525321
今日推荐