[mtalab图像处理] 灰度的线性变换

来源:互联网 发布:外贸社交软件 编辑:程序博客网 时间:2024/05/06 01:50
 clc;
 clear all;
I= imread('cameraman.tif');        % 读入原图像 
 
I = im2double(I);           % 转换数据类型为double 
[M,N] = size(I);            % 计算图像面积 
 
figure(1);              % 打开新窗口 
imshow(I);              % 显示原图像 
title('原图像'); 
 
figure(2);                  % 打开新窗口 
[H,x] = imhist(I, 64);      % 计算64个小区间的灰度直方图 
stem(x, (H/M/N), '.');      % 显示原图像的直方图  直方图做了归一化(H/M/N)
title('直方图原图像'); 
 
% 增加对比度 
Fa = 2; Fb = -55; 
O = Fa .* I + Fb/255;   %Fa>1时,输出图像的对比度将增大;Fa<1时,输出图像对比度将减小。
                       %Fa=1且Fb非零时,所有像素的灰度值上移或下移,使整个图像更暗或
                       %更亮。Fa<0,暗区变亮,亮区变暗。 实际处理图像是Fa,Fb是通过计算出来的
 
figure(3); 
subplot(2,2,1); 
imshow(O); 
title('Fa = 2 Fb = -55 增加对比度图像'); 
 
figure(4); 
subplot(2,2,1); 
[H,x] = imhist(O, 64); 
stem(x, (H/M/N), '.'); 
title('Fa = 2 Fb = -55 增加对比度直方图'); 
 
% 减小对比度 
Fa = 0.5; Fb = -55; 
O = Fa .* I + Fb/255; 
 
figure(3); 
subplot(2,2,2); 
imshow(O); 
title('Fa = 0.5 Fb = -55 减小对比度图像'); 
 
figure(4); 
subplot(2,2,2); 
[H,x] = imhist(O, 64); 
stem(x, (H/M/N), '.'); 
title('Fa = 0.5 Fb = -55 减小对比度直方图'); 
 
% 线性增加亮度 
Fa = 1; Fb = 55; 
O = Fa .* I + Fb/255; 
 
figure(3); 
subplot(2,2,3); 
imshow(O); 
title('Fa = 1 Fb = 55 线性平移增加亮度图像'); 
 
figure(4); 
subplot(2,2,3); 
[H,x] = imhist(O, 64); 
stem(x, (H/M/N), '.'); 
title('Fa = 1 Fb = 55 线性平移增加亮度直方图'); 
 
% 反相显示   黑变白 白变黑
Fa = -1; Fb = 255; 
O = Fa .* I + Fb/255; 
 
figure(3); 
subplot(2,2,4); 
imshow(O); 
title('Fa = -1 Fb = 255 反相显示图像'); 
 
figure(4); 
subplot(2,2,4); 
[H,x] = imhist(O, 64); 
stem(x, (H/M/N), '.'); 
title('Fa = -1 Fb = 255 反相显示直方图'); 
0 0
原创粉丝点击