scale_image的使用

介绍了ScaleImage算子,其作用是对图像灰度值进行缩放,若结果值溢出会自动截断(部分图像除外)。还说明了用法,先获取当前图像灰度值阈值范围和目标范围,再计算Mult和Add,最后使用该算子,可实现图像集灰度值归一化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Date: 20180827

void ScaleImage( const HObject &Image, HObject *ImageScaled, const HTuple &Mult, const HTuple &Add );

HImage HImage::ScaleImage( const HTuple &Mult, const HTuple &Add ) const;

HImage HImage::ScaleImage( double Mult, double Add ) const;

 ScaleImage算子作用是对一幅图像的灰度值进行缩放,规则是:

g` := g * Mult + Add

如果结果值溢出,则自动截断(这种情况不包括'cyclic'和‘direction’图像);

用法:

  首先,获取当前图像灰度值的一个阈值范围【GMin0, GMax0】;确认需要得到的图像的灰度值范围【GMin1, GMax1】;

  然后,计算得到Mult和Add,公式如下:

Mult = (GMax1 - GMin1) * 1.0 / (GMax0 - GMin0);
Add = GMin1 - Mult * GMin0;

  最后,使用ScaleImage。

 这样可以进行图像集的灰度值归一化

转载于:https://www.cnblogs.com/xiawuhao2013/p/9541108.html

### Halcon 中 `scale_image` 函数的参数范围及用法 #### 参数说明 `scale_image` 是 Halcon 图像处理库中的一个重要算子,用于调整图像的灰度值。其签名为: ```plaintext scale_image(Image : ImageScaled : Mult, Add : ) ``` 其中: - **Image**: 输入图像。 - **ImageScaled**: 输出图像,表示经过缩放后的图像。 - **Mult**: 缩放倍数因子,控制输入图像像素值的比例系数[^5]。 - **Add**: 增加偏移量,控制每个像素值增加的固定数值。 #### 参数范围 - **Mult** 的取值可以是任意实数(正数或负数)。正值会放大图像亮度,而负值则会使图像反转颜色并改变亮度。 - **Add** 的取值也可以是任意实数。它决定了最终输出图像中每个像素值的基础偏移量。 具体计算公式如下: \[ \text{Output} = (\text{Input} \times \text{Mult}) + \text{Add} \] 这意味着通过调节这两个参数,可以实现多种效果,比如对比度增强、亮度调整以及图像反色等操作。 #### 使用方法 以下是 `scale_image` 的典型应用场景及其代码示例: 1. **基本使用** 下面是一个简单的例子,展示如何利用 `scale_image` 调整图像亮度和对比度。 ```hdevelop read_image (Image, 'fabrik') scale_image (Image, ImageScaled, 2.0, -100) % 将图像亮度加倍,并减少背景噪声 dev_display (ImageScaled) ``` 这里设置 `Mult=2.0` 和 `Add=-100` 来提高图像的整体对比度。 2. **动态计算最佳参数** 如果不确定合适的 `Mult` 和 `Add` 值,可以通过分析原始图像的统计特性来自动计算这些参数。例如,基于最小最大灰度值进行比例变换。 ```hdevelop get_image_stats (Image, Width, Height, MinGray, MaxGray, MeanGray, Deviation) Mult := 255 / (MaxGray - MinGray) Add := -MinGray * Mult scale_image (Image, ImageScaled, Mult, Add) dev_display (ImageScaled) ``` 上述代码片段展示了如何根据图像的实际灰度分布自动生成适合的缩放参数。 3. **与其他算子结合** 可以将 `scale_image` 结合其他图像预处理技术一起使用,从而达到更复杂的效果。例如,在执行边缘检测之前先优化图像对比度。 ```hdevelop read_image (Image, 'mreut') scale_image (Image, ImageEnhanced, 1.5, -50) sobel_amp (ImageEnhanced, EdgeAmp, 'sum_abs', 3) threshold (EdgeAmp, Region, 10, 255) connection (Region, ConnectedRegions) select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 100, 999999) dev_display (SelectedRegions) ``` 此处首先增强了原图的对比度以便后续更好地提取特征区域。 #### 注意事项 尽管 `scale_image` 功能强大,但在实际应用过程中需要注意以下几点: - 当前版本支持多通道彩色图片作为输入;但对于 RGB 或者 HSV 类型的数据结构,则需分别针对各分量单独调用该命令。 - 若目标设备显示能力有限制(如仅能呈现8位灰阶),那么可能还需要额外考虑溢出情况下的裁剪逻辑。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值