使用 ImageMagick 从像素强度数组创建灰度图像时遇到问题
Trouble creating grayscale image from array of pixel intensities with ImageMagick
我正在尝试使用 ImageMagick 使用强度值数组中的值输出 png 灰度图像。
我已经使用 Image 构造函数来尝试执行此操作,但它创建的图像与给定的数组并不完全匹配。
Image grayscaleImage(256, 256, "I", DoublePixel, inputPtr);
grayscaleImage.write("test.png");
正在创建的图像具有所有黑色像素的正确值(强度为 0(,但对于非零像素,我只得到白色;没有灰色。如何更正此问题?还是我错误地使用了构造函数?谢谢!
正如 emcconville 所说,整数数组中的数字需要缩放到 0.0
到 1.0
之间才能Magick::DoublePixel
。我使用以下函数实现了此目的:
(b-a)(x - min)
f(x) = -------------- + a
max - min
其中 a == 0
、 b == 1
、 x == inputPtr[index]
、 min == 0
和 max == 255
。
相关文章:
- OpenCV - 如何在灰度图像上应用 Kmeans?
- C++灰度图像处理
- 如何显示具有 opengl 纹理的灰度图像
- (C++)(Visual Studio) 将高斯模糊滤镜应用于 RGB 中的灰度图像
- 使用 SSE 以最快的速度缩小 8 位灰度图像
- 使用 OpenCV 和 C++将 16 位灰度图像更改为彩色图像
- 有没有办法使用 glDrawPixel 渲染单通道灰度图像?
- 如何在OpenCV中减去两个不同尺寸的图像和灰度图像
- 使用 ImageMagick 从像素强度数组创建灰度图像时遇到问题
- 将高斯模糊应用于灰度图像
- 在OpenCV中将灰度图像转换为单色
- Mat的convertTo函数在OpenCV中将灰度图像的类型转换为CV_32F时抱怨断言错误
- 使用 FreeImage 加载 RAW 灰度图像
- 使用条款 使用Opencv和Qt减去两个灰度图像
- 使用OpenCV在Android上使用神经网络进行灰度图像分类
- 使用 C++ 从 16 位数据创建灰度图像
- 使用Opencv直接从网络摄像头获取灰度图像
- 在 openCV 中访问某些像素的强度值(灰度图像)
- 在 C 或 C++ 中翻转灰度图像
- 如何在OpenCV中创建二进制非灰度图像