数字图像处理——Matlab 学习笔记(灰度变换、直方图处理)
本文仅初学基于Matlab数字图像处理的学习笔记,为方便以后复习及查找代码所用
1 图像的输入和显示
f=imread('E:\Matl\image\tianya1.jpg');
imshow(f)
figure,imshow(g) #在另一个图像显示窗口显示另一张图像
imwrite(f,'tianya1.jpg','quality',100); #将图像写入当前目录
2 灰度变换
imcomplement函数
g = imcomplement(f) %获得照片负片 *负片变换*
imshow(g)
imadjust函数
g1 = imadjust(f,[0 1],[1 0]); %获得照片负片 *负片变换*
figure,imshow(g1)
g2 = imadjust(f,[0.5 0.75],[0 1]); %将0.5到0.75之间的灰度扩展到【0 1】整个范围
figure,imshow(g2)
g3 = imadjust(f,[],[],2); %用gamma=2**图像增强** 空矩阵为默认值 *gamma变换*
figure,imshow(g3)
g4 = imadjust(f,stretchlim(f),[]); %stretchlim(f)函数 可增强图像的对比度 *对比度变换*
figure,imshow(g4)
g5 = im2uint8(mat2gray(log(1+double(f)))); %对数变换,目的为保留频谱中低灰度值的细节部分 *对数变换*
figure,imshow(g5)
总结:g1负片;g2对比增强,强调图片明显的特征;g3压缩灰度的低端和高端;g4对比增强,比g2增强结果较小;
3 直方图处理
imhist(f); %默认直方图
figure,imshow(g)
figure,imhist(g)
从直方图中看出,整幅图较暗,直方图分布在偏灰度级的暗端,动态范围较低
3.1直方图均衡化
>> g = histeq(f,256);
>> figure,imshow(g)
>> figure,imhist(g)
>> ylim('auto')