灰度变换是图像预处理的重要手段,常见的变换方法如下,图文并茂和大家一起学习:
%% 尝试灰度变换--伽马变换和对数变换、直方图均衡化
clc,clear,close all
f = imread('C:\Users\HS\Desktop\duck.jpg');
figure;imshow(f);title('原图');
f = rgb2gray(f); % 彩色图像的灰度化
figure;imshow(f);title('原图灰度化');
灰度化之后开始正式的操作,
1.负片
就是把灰度级的黑与白对调,有时候会从视觉上方便观察和寻找目标
g0 = imadjust(f,[0,1],[1,0],1);
figure,imshow(g0);title('负片图像');
g = imcomplement(f); % 效果同上
figure,imshow(g);title('等效的负片图像');
2.扩展区间与伽马灰度变换
g1 = imadjust(f,[0 1],[0,1],1.5);
figure,imshow(g1);title('灰度高低限不变,gamma=1.5');%变换效果不佳。。。
%开始选择灰度较高的区域做变换
%g2 = imadjust(f,[0.5,0.85],[0,1],1);%mamma=1时,线性变换,等效于下一句
g2 = imadjust(f,[0.1,0.85],[]);
figure,imshow(g2);title('扩展区间0.1~0.85,gamma变换,默认值');
imhist(g2);ylim('auto');title('gamma变换,默认1');
g3 = imadjust(f,[0.1,0.85],[],0.5);%mamma<1时,变换凸显高灰度区域
figure,imshow(g3);title('扩展区间0.1~0.85,gamma<1');
imhist(g3);ylim('auto');title('gamma变换,0.5');
g4 = imadjust(f,[0.1,0.85],[0,1],2);%mamma>1时,变换凸显低灰度区域
figure,imshow(g4);title('扩展区间0.1~0.85,gamma>1');
imhist(g4);ylim('auto');title('gamma变换,2.0');
%figure,histogram(g4);title('gamma变换,2');
光看图没感觉?是滴,人眼的直观感受其实并不可信,建议对比灰度直方图看效果
可见灰度伽马变换的效果是根据gamma改变图像灰度构成,具体效果需要修改参数具体分析了
3.自动选取灰度级的灰度变换
%