使用 ImageMagick 从像素强度数组创建灰度图像时遇到问题

Trouble creating grayscale image from array of pixel intensities with ImageMagick

本文关键字:灰度图像 创建 遇到 问题 数组 ImageMagick 像素 使用      更新时间:2023-10-16

我正在尝试使用 ImageMagick 使用强度值数组中的值输出 png 灰度图像。

我已经使用 Image 构造函数来尝试执行此操作,但它创建的图像与给定的数组并不完全匹配。

Image grayscaleImage(256, 256, "I", DoublePixel, inputPtr);
grayscaleImage.write("test.png");

正在创建的图像具有所有黑色像素的正确值(强度为 0(,但对于非零像素,我只得到白色;没有灰色。如何更正此问题?还是我错误地使用了构造函数?谢谢!

正如 emcconville 所说,整数数组中的数字需要缩放到 0.01.0 之间才能Magick::DoublePixel。我使用以下函数实现了此目的:

       (b-a)(x - min)
f(x) = --------------  + a
          max - min

其中 a == 0b == 1x == inputPtr[index]min == 0max == 255