灰度变换包括:1.线性变换。2.非线性变换。3.分段变换。4.对数变换。5.二值化和阈值处理。6.双固定阈值法,本文采取线性变换、对数变换和imadjust函数。

在MATLAB中,通过函数imadjust()进行图像灰度的调整,该函数调用格式如下:

J=imadjust( I ) 对图像I进行灰度调整

J=imadjust( I,[low_in;high_in],[low_out;high_out]) [low_in;high_in]为原图像中要变换的灰度范围,[low_out;high_out]为变换后的灰度范围

J=imadjust( I,[low_in;high_in],[low_out;high_out],gamma) 该gamma参数为映射的方式,默认值为1,即线性映射。当gamma不等于1时为非线性映射

RGB2=imadjust(RGB1,…) 该函数对彩色图像的RGB1进行调整
 

close all;
clear all;
clc;
I=imread('lena.bmp');
J=rgb2gray(I);
[m,n] = size(J);
%%线性变换
for x=1:m
    for y=1:n
        J_linear(x,y)=J(x,y)*1.5+10;
    end
end
%%对数变换
A=double(J);
for x=1:m
    for y=1:n
        if(J(x,y)<=159)
            J_log(x,y)=(log(A(x,y)+1))/2;
        end
    end
end
% imadjust函数直接调整
J_imadjust=imadjust(J);
set(0,'defaultFigurePosition',[100,100,1000,500]);    %修改图形图像位置的默认设置
set(0,'defaultFigureColor', [1 1 1])                  %修改图形背景颜色的设置
subplot(221),imshow(J);
subplot(222),imshow(J_linear);
subplot(223),imshow(J_log);
subplot(224),imshow(J_imadjust);

 

更多推荐