Halcon可视化之add_image

引言


1、 add_image案例

* This example demonstrates how to add two images with
* the operator 'add_image'.
* 
* 
dev_close_window ()    //关闭活动图形窗口
dev_update_off ()      
* 
* Read the two images and cut out a rectangular area
* in each image
read_image (Image1, 'patras')   //Read an image with different file formats.
read_image (Image2, 'brycecanyon1')
crop_part (Image1, ImagePart1, 0, 0, 512, 480)  //切出一个或多个矩形图像区域
crop_part (Image2, ImagePart2, 0, 0, 512, 480)
* 
* Display the two input images for the addition
dev_open_window_fit_image (ImagePart1, 0, 0, -1, -1, WindowHandle)
set_display_font (WindowHandle, 16, 'mono', 'true', 'false')
dev_display (ImagePart1)     //在当前图形窗口中显示图像对象
disp_message (WindowHandle, 'Image 1', 'window', 12, 12, 'black', 'true')
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
dev_display (ImagePart2)
disp_message (WindowHandle, 'Image 2', 'window', 12, 12, 'black', 'true')
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
* 
* Add the two images with factor 0.5 for the gray value
* adaption. The resulting image is stored in ImageResult.
add_image (ImagePart1, ImagePart2, ImageResult, 0.5, 0)   //Add two images
dev_display (ImageResult)
disp_message (WindowHandle, 'Resulting image of the addition', 'window', 12, 12, 'black', 'true')

1.1 crop_part结果

在这里插入图片描述
在这里插入图片描述

1.2 add_image结果

在这里插入图片描述


2、 分析关键函数功能作用

2.1 add_image (Operator)

add_image — Add two images.

2.1.1 函数

add_image(Image1, Image2 : ImageResult : Mult, Add : )
//参数
Image1 (input_object)  images(s)1 
Image2 (input_object)  images(s)2
ImageResult (output_object)   添加的结果图像
Mult (input_control)  
	灰度值适应的因素。
	默认值:0.5
	建议值:0.20.40.60.81.01.52.03.05.0
	典型值范围:-255.0 ≤ Mult ≤ 255.0
	最小增量:0.001
	推荐增量:0.1
Add (input_control)  
	灰度值范围自适应值。
	默认值:0
	建议值:064128255512
	典型值范围:-512.0 ≤ Add ≤ 512.0
	最小增量:0.01
	推荐增量:1.0
	

2.1.2 分析

运算符 add_image 将两个图像相加。输入图像(Image1和Image2)的灰度值(g1,g2)变换如下:

            g' := (g1 + g2) * Mult + Add

如果发生上溢或下溢,这些值将被裁剪。请注意,循环和方向图像不是这种情况。生成的图像存储在 ImageResult 中。

可以使用 int2、uint2 或 int4 图像添加字节图像,并将 int4 添加到 int2 或 uint2 图像。在这种情况下,结果将分别是 int2 或 int4 类型。

一次调用可以处理多个图像。在这种情况下,两个输入参数都包含相同数量的图像,然后成对处理。为每一对生成一个输出图像。

请注意,操作符的运行时间因控制参数不同而异。对于经常使用的组合,使用了特殊的优化。此外,对于 byte、int2、uint2 和 int4 图像,实施了使用 SIMD 技术的特殊优化。这些特殊优化的实际应用由系统参数“mmx_enable”控制(参见 set_system)。如果’mmx_enable’ 设置为’true’(并且SIMD 指令集可用),则使用SIMD 技术执行内部计算。

add_image 可以在 OpenCL 设备上执行,用于字节、int1、int2、uint2、int4、实数、方向、循环和复杂图像。但是,对于 OpenCL 1.0,由于所有设备仅支持单精度浮点,而不支持所有舍入模式,因此 OpenCL 实现可能会产生与标量或 SIMD 实现略有不同的结果。


3、联合MFC进行图像显示

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值