1.利用对数变换减小动态范围
f = imread('E:\【数字图像处理】\Images\DIP3E_Original_Images_CH03\Fig0305(a)(DFT_no_log).tif');g = im2uint8(mat2gray(log(1+double(f))));imshow(g);
2.负片处理两种方式
g = imadjust(f,[0 1],[1 0]);%负片处理
g = imcomplement(f);%负片处理
3.突出感兴趣的灰度区
g = imadjust(f,[0.5 0.75],[0 1]);
4.改变gamma的值来增强图像
g = imadjust(f,[ ],[ ],2);
*gamma>1时调暗,gamma<1时调亮
5.对比度拉伸
g = imadjust(f,stretchlim(f),[1 0]);
6.利用intrans实现对比度拉伸
g = intrans(f,'stretch',mean2(tofloat(f)),0.9);
7.绘制图像的直方图
p = imhist(f)/numel(f);%归一化imhist(p)
8.直方图均衡:扩展了图像的动态范围,提高对比度
f = imread('E:\【数字图像处理】\Images\DIP3E_Original_Images_CH03\Fig0310(b)(washed_out_pollen_image).tif');%读入图像imshow(f);%显示图像figure(2);imhist(f);%绘制直方图ylim('auto');%自动设置y轴上下限范围g=histeq(f,256);%直方图均衡,256为设定的灰度级数,不设的话默认为64figure(3)imshow(g);figure(4)imhist(g);ylim('auto');
%直方图均衡化I = imread('E:\【数字图像处理】\Images\DIP3E_Original_Images_CH03\Fig0310(b)(washed_out_pollen_image).tif');[height,width] = size(I);figuresubplot(221)imshow(I)%显示原始图像subplot(222)imhist(I)%显示原始图像直方图ylim('auto');%进行像素灰度统计;NumPixel = zeros(1,256);%统计各灰度数目,共256个灰度级for i = 1:heightfor j = 1: widthNumPixel(I(i,j) + 1) = NumPixel(I(i,j) + 1) + 1;%对应灰度值像素点数量增加一endend%计算灰度分布密度ProbPixel = zeros(1,256);for i = 1:256ProbPixel(i) = NumPixel(i) / (height * width * 1.0);end%计算累计直方图分布CumuPixel = zeros(1,256);for i = 1:256if i == 1CumuPixel(i) = ProbPixel(i);elseCumuPixel(i) = CumuPixel(i - 1) + ProbPixel(i);endend%累计分布取整CumuPixel = uint8(255 .* CumuPixel +0.5);%对灰度值进行映射(均衡化)for i = 1:heightfor j = 1: widthI(i,j) = CumuPixel(I(i,j)+1);endendsubplot(223)imshow(I)%显示均衡化后图像subplot(224)imhist(I)%显示均衡化后图像直方图ylim('auto')xlim('auto')