Halcon中一些突然想不起来但确实有用的算子

2,886 阅读4分钟

www.cnblogs.com/xh6300/p/61…

1、Develop

dev_display 在现有图形窗口中显示图像目标。

dev_set_color   设置一个或更多输出颜色,通常用于设置region或者xld的颜色。

dev_set_draw  定义区域填充模式,可选项有fillmargin

dev_set_line_width  定义区域轮廓输出的线宽。

dev_set_shape 定义区域输出形状,例如以矩形显示或者以圆形显示,这样可以更好地标记区域。

 

2、Image

invert_image  使一个图像反相。

min_image  按像素计算两个图像的最大小值,相当于Photoshop中的“变暗”模式,这在彩色图像不同通道的计算中可能用得到,相对的有max_image

scale_image  重新定义色阶的范围,g' := g * Mult + Add,可用于增强图像对比度。其使用add_image可以实现类似效果。

 

3、Color

rgb3_to_gray 将三张灰度图像合成一张RGB图像,然后再转成一张灰度图像。这和 rgb1_to_gray不一样。

decompose3   将三通道(彩色)图像转成三张灰度图像。相对的有compose3

trans_from_rgb  把一个图像从RGB颜色空间转变成任意颜色空间(例如hsv、hsi、yuv)。相对的有trans_to_rgb

 

4、Edge

close_edges 使用边缘幅值图像闭合边缘缺口。输入一个边缘图和边缘region,并通过幅值限值连接这些边缘region。如果有的缺口很长,还有更精确的边缘闭合算子close_edges_length

close_edges(Edges, EdgeImage : RegionResult : MinAmplitude : )

equ_histo_image 图像的自动直方图均衡化,类似的算子有scale_image_max

 

5、Creation

copy_image 复制一个图像并为它分配新内存。

gen_image3 从像素(红、绿、蓝)的三个指针创建一个图像。

gen_image_const  创建一个确定尺寸、确定类型的灰度为0的图像。

region_to_bin 把一个区域转变为一个指定前景灰度、背景灰度和宽高的图像。

region_to_mean 输入一张图和一组region,然后对每个region用该region对应的图的平均灰度值来填充。结果是减少了原图灰度的种类。


6、Domain

rectangle1_domain  用一个矩形去截取一张图片。

get_domain  获取一个图像的区域,它跟threshold (Image, Region, 0, 255) 的效果是一样的,时间开销也差不多。

 

7、Features

intensity  计算灰度值的平均值和偏差,通常用来算平均灰度值。

min_max_gray 计算区域内的最大和最小灰度值。

paint_region 把区域填充为某种灰度值。

convert_image_type 转变一个图像的类型,例如int8、byte类型。

line_orientation  计算线的方位。其他计算线的常见算子还有line_positionpartition_lines(区分线)、select_linesselect_lines_longest等。


8、Object

count_obj 统计一个元组中的对象。相关的算子还有concat_obj、copy_obj、gen_empty_obj、select_obj

 

9、Region

inner_circle  一个区域内部最大的圆周。类似的算子有inner_rectangle1、smallest_circle等。

orientation_region  一个区域的朝向。类似的算子有line_orientation、text_line_orientation、orientation_xld等。

 

1 、图像的常规运算

add_image  使两张图像相加

sub_image  图像作差

mult_image  图像相乘  

div_image  图像相除

abs_image  计算一张图像的绝对值(图像的阈值范围不一定都是0-255,“灰度值”可能为负)

invert_image  图像反相

max_image  逐像素计算两张图像的最大值,生成新图像

min_image  逐像素计算两张图像的最小值,生成新图像

 

2 、图像增强和图像预处理

scale_image  重新映射图像的灰度值(参考我封装的函数scale_gray_map的实现:www.cnblogs.com/xh6300/p/75…

scale_image_max  将图像色阶映射到0-255

emphasize  锐化增强图像对比度

mean_image  均值滤波平滑

gauss_image  高斯滤波平滑

median_image  中值滤波平滑

 

3 、图像裁切

crop_part  截取出图中的一部分(reduce_domain 、crop_domain )

get_domain  得到整张图像的定义域Region

change_format  改变Image图像大小(以原点为起点截取)

 

4 、图像灰度特征获取

get_grayval  得到图像指定坐标处的像素灰度值

set_grayval  设置图像指定坐标处的像素灰度值

min_max_gray  获得一张图像内指定区域灰度的最大值和最小值

intensity  计算图像灰度值的均值和标准差

 

5 、图像创建和绘制

copy_image  复制一张图像并为它分配新内存

gen_image_const  创建一个指定类型的(灰度值为0的)图像

gen_image_proto  使用指定的常量灰度值创建图像

paint_region  在指定区域用某种颜色涂抹该图像(彩色图像要用形如[56,28,100]的方式表示颜色)

region_to_mean  以图像的平均灰度值涂抹该图像

 

6 、图像通道相关的运算

compose3  将三张图像合并成一张三通道图像

decompose3  将一张RGB图像按通道转换成三张图像

access_channel  得到某张图的某个通道图像

append_channel  将某张图作为一个通道添加到一张图上

channels_to_image  将多张单通道图像合并成一张多通道图像

image_to_channels  将多通道图像转换为多张单通道图像

count_channels  计算图像的通道个数

 

7 、图像格式转换

convert_image_type  转换图像的格式(不同图像格式的阈值范围不同)

cfa_to_rgb  把一张单通道图像变成RGB图像(单CCD相机通过CFA获取图像的颜色信息,根据CFA的不同排列,可将其分成BGGR、GBRG、GRBG和RGGB 4种格式。参考:

www.eope.net/article/201…

rgb1_to_gray  把一张RGB图像转变成一张灰度图像

rgb3_to_gray  将三张分别代表R、G、B通道的灰度图像合并成一张灰度图像

trans_from_rgb  把一张图像从RGB颜色空间转变成任意颜色空间

trans_to_rgb  把一张图像从任意颜色空间转变成RGB颜色空间