MATLAB 图像线性变换是通过表达式y=kx+b调整每个像素的亮度与对比度,使灰暗/平淡的图片变清晰、变亮或变暗,便于观察或识别。
1、k=1且b=0,输出图像保持不变。
2、k>1,输出图像的对比度增大。
3、0<k<1,输出图像的对比度减小。
4、k=1且b≠0,输出图像所有像素的灰度值上移或下移,图像更暗或更亮。
5、k=-1且b=255,输出图像反转变化。
现要从当前工作目录中读取某原始彩色图像文件,进行上述5种线性变换。
可在命令窗口输入以下程序:
I=imread('paowuxianqumian.jpg'); k1=2;b1=0; k2=0.5;b2=30; k3=1;b3=50; k4=-1;b4=255; I1=uint8(k1*double(I)+b1); I1(I1>255)=255;I1(I1<0)=0; I2= uint8(k2*double(I)+b2); I2(I2>255)=255;I2(I2<0)=0; I3=uint8(k3*double(I)+b3); I3(I3>255)=255;img3(I3<0)=0; I4=uint8(k4*double(I)+b4); figure; subplot(2,3,1); imshow(I); title('原始图像'); subplot(2,3,2); imshow(I1); title('k=2,b=0,对比度增大'); subplot(2,3,3); imshow(I2); title('k=0.5,b=30,对比度减小,更亮'); subplot(2,3,4); imshow(I3); title('k=1,b=50,更亮'); subplot(2,3,5); imshow(I4); title('k=-1,b=255,反转变化');运行后得到如图1所示图形。
图1 图像的线性变换