如何在MATLAB中降低图片的亮度级别?例如,从256(在8位图片中)到10?
答案 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,[]);
结果如下:
注意从原始8位图像到2位图像的位减少。
答案 1 :(得分:2)
要将图片从X
graylevels转换为包含Y
graylevels的图片,您可以写
modifiedImage = round( double(rawImage)/X * Y);
然后,您可以将modifiedImage
转换为您选择的整数格式,例如uint8
modifiedImage = uint8(modifiedImage);