您的位置:首页 > 其它

图像处理—灰度处理

2014-10-13 22:14 211 查看
个人对图像处理挺感兴趣的,所以,正式开始写东西就从图像处理开始吧!

(1)图像反转

图像反转,顾名思义,就是把灰度值进行“对折”变换,设图像灰度级为:0-L,则图像反转定义如下:

Out_image(x,y) = L - In_image(x,y)

适用场合:可能感兴趣的区域需要“对折”一下之后视觉效果更好时可以使用

(2)对数变换

对数变换定义如下:

Out_image(x,y) = C*log(In_image(x,y) + 1 )

注:加1是从实践的角度出发的,保证不出现负值

适用场合:想要抑制少数比较大的值占优势时,可以使用

(3)伽马变换

伽马变换定义如下:

Out_image(x,y) = C*In_image(x,y)^r

适用场合:当r>1时,灰度值范围增大

当 0<= r < 1时,灰度范围减小

(4)分段变换

线性变换定义如下:对于阈值L1,L2,....,Ln

Out_image(x,y) = Fi(In_image(x,y)) if L(i-1)<In_image(x,y) < Li

其中:Fi(*)为一个正实值的函数(可以线性,也可以非线性)











<pre name="code" class="plain">
close all
clear all
clc

Img = imread('lena.jpg');

if ndims(Img) == 3
Img = rgb2gray(Img);
end

Img = double(Img);

%反转变换
figure(1)
subplot(1,2,1)
imshow(Img,[]);
title('原图像');
subplot(1,2,2);
imshow(255-Img,[]);
title('反转图像');

%对数变换
figure(2)
subplot(1,2,1);
imshow(Img,[]);
title('原图像')
subplot(1,2,2)
imshow(2*log(Img+1),[]);
title('对数变换图像');

%伽马变换
figure(3)
subplot(1,3,1);
imshow(Img,[]);
title('原图像')
subplot(1,3,2)
imshow(Img.^(0.5),[]);
title('对数变换图像');
subplot(1,3,3)
imshow(Img.^(1.2),[]);
title('对数变换图像');

%分段变换
%灰度值在80-120进行伽马变换
figure(4)
subplot(1,2,1);
imshow(Img,[]);
title('原图像')
Temp = Img.^(1.2);
mask = (Img>= 80).*(Img <= 120);
Img = (1-mask).*Img + mask.*Temp;
subplot(1,2,2)
imshow(Img,[]);
title('分段变换图像');



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: