繁体   English   中英

如何更改图像的像素值范围?

[英]How can I change the pixel value range in an image?

我有灰度图像,其值在[0-65533]范围内。 我以前从未见过。 这个范围是多少?

我想将值缩放到[0-1200]范围。 我尝试了imadjust函数,但由于该函数仅需要0.0到1.0之间的值,所以它不起作用。

如何使用不imadjust来正确缩放这些值?

该值范围表明您的灰度图像包含无符号的16位整数,即它的类型为uint16 (从0到65535的整数值)。 imadjust的文档指出它支持这种类型的图像,但是要获得所需的结果仍然有些棘手。

不论图像类型如何,对比度极限始终期望在[0 1]范围内。 这将需要您自己除以65535来重新缩放它们:

scaledImage = imadjust(uint16(inputImage), [0 65533]./65535, [0 1200]./65535);

请注意,我还添加了转换uint16(...)只是为了确保输入图像在传递给imadjust时就是该类型。 如果您输入的图像碰巧先转换为double类型, imadjust会期望该值也位于该图像的[0 1]范围内,在这种情况下会给您带来不正确的输出。

如果我理解正确,则可以执行以下操作:

newimage=1200.*oldimage./65533;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM