数字图像处理实验.docx
- 文档编号:15165796
- 上传时间:2023-07-01
- 格式:DOCX
- 页数:15
- 大小:1.31MB
数字图像处理实验.docx
《数字图像处理实验.docx》由会员分享,可在线阅读,更多相关《数字图像处理实验.docx(15页珍藏版)》请在冰点文库上搜索。
数字图像处理实验
WorkONE
1,
>>f=imread('C:
\Users\sony\Desktop\aaa.jpg');
>>imshow(f);
>>imwrite(f,'D:
\a.jpg')
G=rgb2gray(f);
imwrite(G,'D:
\b.jpg')
2
f=imread('D:
\b.jpg');
f=double(f);
g=255-f;
imshow(uint8(g))
3
>>I=imread('D:
\b.jpg');
>>figure;
>>[M,N]=size(I);
>>[counts,x]=imhist(I,32);
>>counts=counts/M/N;
>>stem(x,counts);
4
(1)
>>h=imnoise(I,'gaussian',0.02);
>>imshow(h);
>>title('高斯噪声');
(2)
>>h1=imnoise(I,'salt&pepper',0.02);
>>imshow(h1);
>>title('椒盐噪声');
5
>>f=imread('C:
\Users\sony\Desktop\aaa.jpg');
>>[m,n]=size(f);
>>f=double(f);
>>fori=2:
m-1
forj=2:
n-1
g(i,j)=f(i,j)+f(i+1,j)+f(i-1,j)+f(i,j+1)+f(i,j-1)+f(i+1,j+1)+f(i-1,j-1)+f(i+1,j-1)+f(i-1,j+1);
g(i,j)=g(i,j)/9;
end
end
>>figure;imshow(uint8(g))
6
I=imread('D:
\b.jpg');
J=histeq(I);
imshow(I);title('原图像');
figure;imshow(J);title('直方图均衡化后的图像');
figure;subplot(1,2,1);
imhist(I,64);
title('原图像直方图');
subplot(1,2,2);
imhist(J,64);title('均衡变化后的直方图');
7
I=imread('D:
\b.jpg');
>>h=medfilt2(I,[3,3]);
imshow(h);title('中值滤波');
8
(1)Sobel
>>I=imread('D:
\b.jpg');
>>[H,W]=size(I);
>>M=double(I);g
>>J=M;
>>fori=2:
H-1
forj=2:
W-1
J(i,j)=abs(M(i-1,j+1)-M(i-1,j-1)+2*M(i,j+1)-2*M(i,j-1)+M(i+1,j+1)-M(i+1,j-1))+abs(M(i-1,j-1)-M(i+1,j-1)+2*M(i-1,j)-2*M(i+1,j)+M(i-1,j+1)-M(i+1,j+1));
end
end
>>subplot(1,2,1);imshow(I);title('原图');
>>subplot(1,2,2);imshow(uint8(J));title('sobel交叉梯度处理后');
(2)Laplace
>>I=imread('D:
\b.jpg');
>>subplot(1,2,1);
>>imshow(I);title('原始图像');
>>I=double(I);;
>>H=[010;1-41;010];
>>J=conv2(I,H,'same');
>>subplot(1,2,2);
>>imshow(J,[]);title('图像');
(3)Robert
>>I=imread('D:
\b.jpg');
>>I=double(I);
>>w1=[-10;01];
>>w2=[0-1;10];
>>L1=imfilter(I,w1,'corr','replicate');
>>L2=imfilter(I,w2,'corr','replicate');
>>L=abs(L1)+abs(L2);
>>subplot(1,3,1);imshow(L,[]);title('L');
>>subplot(1,3,2);imshow(abs(L1),[]);title('L1');
>>subplot(1,3,3);imshow(abs(L2),[]);title('L2');
(4)高斯拉普拉斯锐化
>>I=imread('D:
\b.jpg');
>>Id=double(I);
>>h_1=fspecial('log',5,0.5);
>>I_1=imfilter(Id,h_1,'corr','replicate');
>>figure;imshow(uint8(abs(I_1)),[]);
>>h_2=fspecial('log',5,2);
>>I_2=imfilter(Id,h_2,'corr','replicate');
>>figure;imshow(uint8(abs(I_2)),[]);
Worktwo
作业一1
I=imread('D:
\b.jpg');%读入图像
fftI=fft2(I);%二维离散傅里叶变换
sfftI=fftshift(fftI);%直流分量移到频谱中心
RR=real(fftI);%取傅里叶变换结果的实部
II=imag(fftI);%取傅里叶变换结果的虚部
B=sqrt(RR.^2+II.^2);%计算振幅谱值
B=(B-min(min(B)))/(max(max(B))-min(min(B)))*255;%归一化
RR=real(sfftI);%取傅里叶变换结果的实部
II=imag(sfftI);%取傅里叶变换结果的虚部
A=sqrt(RR.^2+II.^2);%计算振幅谱值
A=(A-min(min(A)))/(max(max(A))-min(min(A)))*255;%归一化
figure;
subplot(1,3,1);imshow(I);
subplot(1,3,2);imshow(B);
subplot(1,3,3);imshow(A)%显示原图像的频谱
2
f1=imread('D:
\b.jpg');
[m,n]=size(f1);
fori=1:
m;
forj=1:
n;
f2(i,j)=((-1)^(i+j)*f1(i,j));
end
end
fft_f22=log(1+abs(fftshift(fft2(f2))));
subplot(2,2,1);imshow(f2,[]);title('f2原图');
subplot(2,2,2);imshow(fft_f22,[]);title('FFT_f2幅度谱图');
f1=double(f1);
FFT_f1=fftshift(fft2(f1));;
r=real(FFT_f1);
i=imag(FFT_f1);
FFT_f1=abs(FFT_f1);
subplot(2,2,3);imshow(f1,[]);title('f1原图');
subplot(2,2,4);imshow(uint8(FFT_f1),[]);title('FFT_f1幅度谱图');
实验二
%Thefilter%HIGHPASSFILTER-Constructsahigh-passbutterworthfilter.
%usage:
f=highpassfilter(sze,cutoff,n)
%where:
szeisatwoelementvectorspecifyingthesizeoffilter%toconstruct[rowscols].
%cutoffisthecutofffrequencyofthefilter0-0.5
%nistheorderofthefilter,thehighernisthesharper
%thetransitionis.(nmustbeaninteger>=1).
%Thefrequencyoriginofthereturnedfilterisatthecorners.
functionf=highpassfilter(sze,cutoff,n)
ifcutoff<0|cutoff>0.5
error('cutofffrequencymustbebetween0and0.5');
end
ifrem(n,1)~=0|n<1
error('nmustbeaninteger>=1');
end
f=1.0-lowpassfilter(sze,cutoff,n);
functionf=lowpassfilter(sze,cutoff,n)
ifcutoff<0|cutoff>0.5
error('cutofffrequencymustbebetween0and0.5');
end
ifrem(n,1)~=0|n<1
error('nmustbeaninteger>=1');
end
iflength(sze)==1
rows=sze;cols=sze;
else
rows=sze
(1);cols=sze
(2);
end
%SetupXandYmatriceswithrangesnormalisedto+/-0.5
%Thefollowingcodeadjuststhingsappropriatelyforoddandevenvalues
%ofrowsandcolumns.
ifmod(cols,2)
xrange=[-(cols-1)/2:
(cols-1)/2]/(cols-1);
else
xrange=[-cols/2:
(cols/2-1)]/cols;
end
ifmod(rows,2)
yrange=[-(rows-1)/2:
(rows-1)/2]/(rows-1);
else
yrange=[-rows/2:
(rows/2-1)]/rows;
end
[x,y]=meshgrid(xrange,yrange);
radius=sqrt(x.^2+y.^2);%Amatrixwitheverypixel=radiusrelativetocentre.
f=ifftshift(1./(1.0+(radius./cutoff).^(2*n)));
%BANDPASSFILTER-Constructsaband-passbutterworthfilter
%usage:
f=bandpassfilter(sze,cutin,cutoff,n)
%where:
szeisatwoelementvectorspecifyingthesizeoffilter%toconstruct[rowscols].
%cutinandcutoffarethefrequenciesdefiningthebandpass0-0.5
%nistheorderofthefilter,thehighernisthesharper
%thetransitionis.(nmustbeaninteger>=1).
%Thefrequencyoriginofthereturnedfilterisatthecorners.
functionf=bandpassfilter(sze,cutin,cutoff,n)
ifcutin<0|cutin>0.5|cutoff<0|cutoff>0.5
error('frequenciesmustbebetween0and0.5');
end
ifrem(n,1)~=0|n<1
error('nmustbeaninteger>=1');
end
f=lowpassfilter(sze,cutoff,n)-lowpassfilter(sze,cutin,n);
a=imread('D:
\b.jpg');
I=lowpassfilter(size(a),0.05,1);
subplot(3,3,1);imshow(a,[]);title('原图');
b=fft2(double(a));
c=b.*I;
d=ifft2(c);
subplot(3,3,2);imshow(uint8(real((d))),[]);title('低通');
h=highpassfilter(size(a),0.1,2);
ch=b.*h;
dh=ifft2(ch);
subplot(3,3,3);imshow(uint8(real(((dh)))));title('高通');
f=bandpassfilter(size(a),0.05,0.1,1);
cb=b.*f;
db=ifft2(cb);
subplot(3,3,4);imshow(uint8(real((db))));title('带通');
rgb(:
:
1)=uint8(real(d));
rgb(:
:
2)=uint8(real(dh));
rgb(:
:
3)=uint8(real(db));
subplot(3,3,5);imshow(uint8(rgb));title('彩色');
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 实验