对数函数变化
代码:
f = imread('1.jpg');
G = mat2gray(log(1 + double(f)));
% matlab中数值一般采用double型(64位)存储和运算。mat2gray对图像灰度进行归一化处理
subplot(1, 2, 1);
imshow(f);
xlabel(' a). 原始图像');
subplot(1, 2, 2);
imshow(G, []); % 自动调整数据的范围以便于显示
xlabel(' b). 对数变换');
运行结果:
伽马曲线增强图像:
代码:
%扩展亮灰度级
clear;
img = imread('1.jpg');
f=mat2gray(img);
a=1;
gamma=0.6;
gamma1=0.3;
s=a*(f.^gamma);
s1=a*(f.^gamma1);
s2=log(1+f);
subplot(221),imshow(f,[0 1]);title('原始图像');
subplot(222),imshow(s,[0 1]);title('0.6');
subplot(223),imshow(s1,[0 1]);title('0.3');
subplot(224),imshow(s2,[0 1]);title('对数变换');
运行结果:
转化为灰度图像后灰度变换:
代码:
Image=(rgb2gray(imread('2.jpg')));
imwrite(Image,'2.jpg');
Image=double(Image);
NewImage1=46*log(Image+1); %对数函数非线性灰度级变换
NewImage2=185*exp(0.325*(Image-225)/30)+1;%指数函数非线性灰度级变换
a=0.5; c=1.1;
NewImage3=[(Image/255).^a]*255*c; %幂次函数非线性灰度级变换
imwrite(uint8(NewImage1),'G1.bmp');
imwrite(uint8(NewImage2),'G2.bmp');
imwrite(uint8(NewImage2),'G3.bmp');
imshow(Image,[]);title('灰度图像');
figure;imshow(NewImage1,[]);title('对数函数非线性灰度级变换');
figure;imshow(NewImage2,[]);title('指数函数非线性灰度级变换');
figure;imshow(NewImage3,[]);title('幂次函数非线性灰度级变换');
运行结果:
灰度图像:
对数函数灰度变换
指数函数灰度变换
幂次级函数图像灰度变换