您好,欢迎来到华拓网。
搜索
您的当前位置:首页数字图像处理实验代码

数字图像处理实验代码

来源:华拓网


i = imread('C:\\Documents and Settings\\1\\桌面\\12.jpg')

i = rgb2gray(i);

>> figure(i)

>> figure(2)

>> subplot(2,2,1)

>> imshow(i)

>> title('原始灰度图像')

>> j = ffshift(ff2(i));

>> j = fftshift(fft2(i));

>> jj = log(abs(j));

>> subplot(2,2,2);

>> imshow(jj,[ ]);

title('原图像幅度谱')

>> phase = (angle(j)*180/pi);

>> subplot(2,2,3)

>> imshow(phase)

>> title('原图像相位谱')

I = imread('C:\\Documents and Settings\\1\\桌面\\12.jpg');

>> I=rgb2gray(I); % 将图像转为灰度图像

figure(1), subplot(2,2,1);

imshow(I); %显示灰度图片

title('原始灰度图像');

J=fftshift(fft2(I)); %傅立叶变换,并移频

JJ=log(abs(J)); %取得幅度谱,其值较大,故取log

subplot(2,2,2);imshow(JJ,[ ]); %显示幅度谱,[ ]内参数可修改

title('原图像幅度谱');

[a,b]=size(J); %取出频谱尺度

h=zeros(a,b);

a0=round(a/2); %频谱的横向宽度,取整

b0=round(b/2); %频谱的纵向宽度,取整

d=30; %改变d 值,所的图像不同

for i=1:a

for j=1:b

distance=sqrt((i-a0)^2+(j-b0)^2);

if distance<=d

h(i,j)=1;

else

h(i,j)=0; %构造出大小和频谱一致的滤波器h

end

end

end

J1=h.*J; %滤波后频谱J1

J2= log(abs(J1));

subplot(2,2,3);imshow(J2,[ ])

title('低通滤波后幅度谱');

J3=ifft2(ifftshift(J1)); %逆傅立叶变换

J4=uint8(abs(J3)); %将滤波图像转换成uint8 格式

subplot(2,2,4); imshow(J4);

title('低通滤波后图像')

>>

I = imread('C:\\Documents and Settings\\1\\桌面\\12.jpg');

>> I=rgb2gray(I); % 将图像转为灰度图像

figure(1), subplot(2,2,1);

imshow(I); %显示灰度图片

title('原始灰度图像');

J=fftshift(fft2(I)); %傅立叶变换,并移频

JJ=log(abs(J)); %取得幅度谱,其值较大,故取log

subplot(2,2,2);imshow(JJ,[ ]); %显示幅度谱,[ ]内参数可修改

title('原图像幅度谱');

[a,b]=size(J); %取出频谱尺度

h=zeros(a,b);

a0=round(a/2); %频谱的横向宽度,取整

b0=round(b/2); %频谱的纵向宽度,取整

d=50; %改变d 值,所的图像不同

for i=1:a

for j=1:b

distance=sqrt((i-a0)^2+(j-b0)^2);

if distance>=d

h(i,j)=1;

else

h(i,j)=0; %构造出大小和频谱一致的滤波器h

end

end

end

J1=h.*J; %滤波后频谱J1

J2= log(abs(J1));

subplot(2,2,3);imshow(J2,[ ])

title('高通滤波后幅度谱');

J3=ifft2(ifftshift(J1)); %逆傅立叶变换

J4=uint8(abs(J3)); %将滤波图像转换成uint8 格式

subplot(2,2,4); imshow(J4);

title('高通滤波后图像')

>>

I = imread('C:\\Documents and Settings\\1\\桌面\\12.jpg');

I = rgb2gray(I);

I1=im2double(I); %转换成双精度类型

T=dctmtx(8); %产生DCT 变换核

B=blkproc(I1,[8 8],'P1*x*P2',T,T');

mask=[1 1 1 1 0 0 0 0

1 1 1 0 0 0 0 0

1 1 0 0 0 0 0 0

1 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0]; %构造出二值掩膜,仅保留左上角的十个DCT 低频系数

B2=blkproc(B,[8 8],'P1.*x',mask); %将DCT 系数矩阵乘以二值掩膜

I2=blkproc(B2,[8 8],'P1*x*P2',T',T); %反DCT 操作,得出处理后图像

subplot(1,2,1),imshow(I1);

subplot(1,2,2),imshow(I2);

corr2(I1,I2); %求出原图像数据与处理后图像的相关性,越接近1 说明两者差别少

ans

I = imread('C:\\Documents and Settings\\1\\桌面\\12.jpg');

I = rgb2gray(I);

I1=im2double(I); %转换成双精度类型

T=dctmtx(8); %产生DCT 变换核

B=blkproc(I1,[8 8],'P1*x*P2',T,T');

mask=[0 1 1 1 0 0 0 0

1 1 1 0 0 0 0 0

1 1 0 0 0 0 0 0

1 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0]; %构造出二值掩膜,仅保留左上角的十个DCT 低频系数

B2=blkproc(B,[8 8],'P1.*x',mask); %将DCT 系数矩阵乘以二值掩膜

I2=blkproc(B2,[8 8],'P1*x*P2',T',T); %反DCT 操作,得出处理后图像

subplot(1,2,1),imshow(I1);

subplot(1,2,2),imshow(I2);

corr2(I1,I2); %求出原图像数据与处理后图像的相关性,越接近1 说明两者差别少

ans

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo3.cn 版权所有 湘ICP备2023017654号-3

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务