MATLAB图像增强程序举例.docx
- 文档编号:15472604
- 上传时间:2023-07-04
- 格式:DOCX
- 页数:9
- 大小:596KB
MATLAB图像增强程序举例.docx
《MATLAB图像增强程序举例.docx》由会员分享,可在线阅读,更多相关《MATLAB图像增强程序举例.docx(9页珍藏版)》请在冰点文库上搜索。
MATLAB图像增强程序举例
MATLAB图像增强程序举例
1.灰度变换增强程序:
%GRAYTRANSFORM
clc;
I=imread('pout.tif');
imshow(I);
J=imadjust(I,[0.30.7],[01],1); %transformsthewaluesinthe%intensityimageItovaluesinJbylinealymapping%valuesbetween0.3and0.7tovaluesbetween0and1.
figure;
imshow(J);
J=imadjust(I,[0.30.7],[01],0.5); %ifGAMMAislessthan1,the mappingsiweightedtowardhigher(brighter)
%outputvalues.
figure;
imshow(J);
J=imadjust(I,[0.30.7],[01],1.5); %ifGAMMAisgreaterthan1,themappingsiweightedtowardlower(darker)
%outputvalues.
figure;
imshow(J)
J=imadjust(I,[0.30.7],[01],1); %IfTOP figure; imshow(J); 2.直方图灰度变换 %直方图灰度变换 [X,map]=imread('forest.tif'); I=ind2gray(X,map);%把索引图像转换为灰度图像 imshow(I); title('原图像'); improfile%用鼠标选择一条对角线,显示线段的灰度值 figure;subplot(121) plot(0: 0.01: 1,sqrt(0: 0.01: 1)) axissquare title('平方根灰度变换函数') subplot(122) maxnum=double(max(max(I)));%取得二维数组最大值 J=sqrt(double(I)/maxnum);%把数据类型转换成double,然后进行平方根变换 %sqrt函数不支持uint8类型 J=uint8(J*maxnum);%把数据类型转换成uint8类型 imshow(J) title('平方根变换后的图像') 3.直方图均衡化程序举例 %HISTGRAMEAQUALIZATION clc; %Clearcommandwindow I=imread('tire.tif'); %readstheimageintire.tifintoI imshow(I); %displaystheintensityimageIwith256graylevels figure; %createsanewfigurewindow imhist(I); %displaysahistogramfortheintensityimageI J=histeq(I,64); %transformstheintensityimageI,returningJanintensity figure; %imagewith64discretelevels imshow(J); figure; imhist(J); J=histeq(I,32); %transformstheintensityimage,returningin%Janintensity figure; %imagewith32discretelevels imshow(J); figure; imhist(J); 4.直方图规定化程序举例 %HISTGRAMREGULIZATION clc; %Clearcommandwindow I=imread('tire.tif'); %readstheimageintire.tifintoI J=histeq(I,32); %transformstheintensityimageI,returningin %Janintensityimagewith32discretelevels [counts,x]=imhist(J); %displaysahistogramfortheintensityimageI Q=imread('pout.tif'); %readstheimageintire.tifintoI figure; imshow(Q); figure; imhist(Q); M=histeq(Q,counts); %transformstheintensityimageQsothatthe %histogramoftheoutputimageMapproximatelymatchescounts figure; imshow(M); figure; imhist(M); 空域滤波增强部分程序 1.线性平滑滤波 I=imread('eight.tif'); J=imnoise(I,'salt&pepper',0.02); subplot(221),imshow(I) title('原图像') subplot(222),imshow(J) title('添加椒盐噪声图像') K1=filter2(fspecial('average',3),J)/255;%应用3*3邻域窗口法 subplot(223),imshow(K1) title('3x3窗的邻域平均滤波图像') K2=filter2(fspecial('average',7),J)/255;%应用7*7邻域窗口法 subplot(224),imshow(K2) title('7x7窗的邻域平均滤波图像') 2.中值滤波器 MATLAB中的二维中值滤波函数medfit2来进行图像中椒盐躁声的去除 %IMAGENOISEREDUCTIONWITHMEDIANFILTER clc; hood=3;%滤波窗口 [I,map]=imread('eight.tif'); imshow(I,map); noisy=imnoise(I,'salt&pepper',0.05); figure; imshow(noisy,map); filtered1=medfilt2(noisy,[hoodhood]); figure; imshow(filtered1,map); hood=5; filtered2=medfilt2(noisy,[hoodhood]); figure; imshow(filtered2,map); hood=7; filtered3=medfilt2(noisy,[hoodhood]); figure; imshow(filtered3,map); 3.4邻域8邻域平均滤波算法 %IMAGENOISEREDUCTIONWITHMEANALGORITHM clc; [I,map]=imread('eight.tif'); noisy=imnoise(I,'salt&pepper',0.05); myfilt1=[010;111;010];%4邻域平均滤波模版 myfilt1=myfilt1/9;%对模版归一化 filtered1=filter2(myfilt1,noisy); imshow(filtered1,map); myfilt2=[111;111;111]; myfilt2=myfilt2/9; filtered2=filter2(myfilt2,noisy); figure; imshow(filtered2,map); 频域增强程序举例 1.低通滤波器 %LOWPASSFILTER clc; [I,map]=imread('eight.tif'); noisy=imnoise(I,'gaussian',0.05); imshow(noisy,map); myfilt1=[111;111;111]; myfilt1=myfilt1/9; filtered1=filter2(myfilt1,noisy); figure; imshow(filtered1,map); myfilt2=[111;121;111]; myfilt2=myfilt2/10; filtered2=filter2(myfilt2,noisy); figure; imshow(filtered2,map); myfilt3=[121;242;121]; myfilt3=filter2(myfilt3,noisy); figure; imshow(filtered3,map); 2.布特沃斯低通滤波器图像实例 I=imread('saturn.png'); J=imnoise(I,'salt&pepper',0.02); subplot(121),imshow(J) title('含噪声的原图像') J=double(J); f=fft2(J); g=fftshift(f); [M,N]=size(f); n=3;d0=20; n1=floor(M/2);n2=floor(N/2); fori=1: M; forj=1: N; d=sqrt((i-n1)^2+(j-n2)^2); h=1/(1+0.414*(d/d0)^(2*n)); g(i,j)=h*g(i,j); end end g=ifftshift(g); g=uint8(real(ifft2(g))); subplot(122),imshow(g) title('三阶Butterworth滤波图像') 色彩增强程序举例 1.真彩色增强实例: %真彩色图像的分解 clc; RGB=imread('peppers.png'); subplot(221),imshow(RGB) title('原始真彩色图像') subplot(222),imshow(RGB(: : 1)) title('真彩色图像的红色分量') subplot(223),imshow(RGB(: : 2)) title('真彩色图像的绿色分量') subplot(224),imshow(RGB(: : 3)) title('真彩色图像的蓝色分量') 2.伪彩色增强举例: I=imread('cameraman.tif'); imshow(I); X=grayslice(I,16);%thresholdstheintensityimageIusing %thresholdvalues1/16,2/16,…..,15/16,returninganindexed%imageinX figure; imshow(X,hot(16)); 3.假彩色增强处理程序举例 [RGB]=imread('ghost.bmp'); imshow(RGB); RGBnew(: : 1)=RGB(: : 3); RGBnew(: : 2)=RGB(: : 1); RGBnew(: : 3)=RGB(: : 2); figure; subplot(121); imshow(RGB); subplot(122); imshow(RGBnew); 主要转载自:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 图像 增强 程序 举例