如何在MATLAB中降低图片的亮度级别?

时间:2011-07-12 07:59:42

标签: matlab image-processing

如何在MATLAB中降低图片的亮度级别?例如,从256(在8位图片中)到10?

2 个答案:

答案 0 :(得分:3)

我建议使用以下代码,这些代码可以更直接地完成您所需的代码:

srcBitDepth = 8;
dstBitDepth = 2;

img = imread('cameraman.tif');
subplot(1,2,1); imshow(img,[]);

img = bitshift(img, dstBitDepth-srcBitDepth);
subplot(1,2,2); imshow(img,[]);

结果如下:

Bit reduction

注意从原始8位图像到2位图像的位减少。

答案 1 :(得分:2)

要将图片从X graylevels转换为包含Y graylevels的图片,您可以写

modifiedImage = round( double(rawImage)/X * Y);

然后,您可以将modifiedImage转换为您选择的整数格式,例如uint8

modifiedImage = uint8(modifiedImage);