合工大图像处理.docx

上传人:b****4 文档编号:6592946 上传时间:2023-05-10 格式:DOCX 页数:10 大小:601.55KB
下载 相关 举报
合工大图像处理.docx_第1页
第1页 / 共10页
合工大图像处理.docx_第2页
第2页 / 共10页
合工大图像处理.docx_第3页
第3页 / 共10页
合工大图像处理.docx_第4页
第4页 / 共10页
合工大图像处理.docx_第5页
第5页 / 共10页
合工大图像处理.docx_第6页
第6页 / 共10页
合工大图像处理.docx_第7页
第7页 / 共10页
合工大图像处理.docx_第8页
第8页 / 共10页
合工大图像处理.docx_第9页
第9页 / 共10页
合工大图像处理.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

合工大图像处理.docx

《合工大图像处理.docx》由会员分享,可在线阅读,更多相关《合工大图像处理.docx(10页珍藏版)》请在冰点文库上搜索。

合工大图像处理.docx

合工大图像处理

合肥工业大学数字图象处理实验(刘强)

第一章MATLAB简介及图像基本运算

1.编写程序add.m,subtract.m,immultiply.m文件分别实现两幅图像的加,减、乘

2.从矩阵的角度编写程序实现图像的加法运算得到混合图像,然后将混合图像与背景图像做减法运算。

3.编写程序实现图像的局部显示

4.使用subplot函数实现多图像的显示

i=imread('图片3.png');%改成你的图片注意这两张图片的大小要一致,否则会出现X与Y不一样的错误

j=imread('图片3.png');%改成你的图片

k1=imadd(i,j);

subplot(2,2,1),imshow(k1),title('加法运算');

k2=imsubtract(i,j);

subplot(2,2,2),imshow(k2),title('减法运算');

k3=immultiply(i,j);

subplot(2,2,3),imshow(k3),title('乘法运算');

B=zeros(300,300);

B(40:

200,40:

200)=1;

k4=imsubtract(k1,j);

subplot(2,2,4),imshow(k4),title('先加后减')

B1=uint8(B);

k5=immultiply(k4,B1);

figure,imshow(k5),title('局部显示')

生成图像

实验二图像变换

1.选取一幅图像,编程并实现图像的频率位移,移到窗口中央。

选取一幅图像,进行离散傅里叶变换,再对其进行一定角度的旋转,进行离散傅里叶变换。

I=zeros(256,256);

I(88:

168,124:

132)=1;%产生图像256*256的图像

J=fft2(I);

F=abs(J);

J1=fftshift(F);subplot(2,2,1),

imshow(J1,[550]),title('将原始图形放在中央');

%对原始图像进行旋转

J=imrotate(I,90,'bilinear','crop');

subplot(2,2,2),

imshow(J),title('原始图像旋转90度');

%求旋转后图像的傅里叶频谱

J1=fft2(J);

F=abs(J1);

J2=fftshift(F);subplot(2,2,3),

imshow(J2,[550]),title('旋转90度后的频谱图')

生成图像

2.对图像进行离散余弦变换,观察其余弦变换系数及余弦反变换后恢复图像。

 

第三章图像的灰度运算

1.对一灰度图像,通过选择不同的灰度级变换函数s=T(r)实现图像的灰度范围线性扩展和非线性扩展,以及图像的灰度倒置和二值化。

I=imread('图片3.png');

figure;

subplot(2,3,1);

imshow(I);

title('原图');

J=imadjust(I,[0.3;0.6],[0.1;0.9]);%设置灰度变换的范围

subplot(2,3,2);

imshow(J);

title('线性扩展');

I1=double(I);%将图像转换为double类型

I2=I1/255;%归一化此图像

C=2;

K=C*log(1+I2);%求图像的对数变换

subplot(2,3,3);

imshow(K);

title('非线性扩展');

M=im2bw(I,0.5);

M=~M;

%M=255-I;%将此图像取反

%Figure

subplot(2,3,4);

imshow(M);

title('灰度倒置');

N1=im2bw(I,0.4);%将此图像二值化,阈值为0.4

N2=im2bw(I,0.7);%将此图像二值化,阈值为0.7

subplot(2,3,5);

imshow(N1);

title('二值化阈值0.4');

subplot(2,3,6);

imshow(N2);

title('二值化阈值0.7');

生成图像

第四章图像增强

1.选取一幅图像,加入椒盐噪声,分别用均值滤波和中值滤波进行平滑处理,比较滤波效果

I=imread('图片3.png');

J=imnoise(I,'salt&pepper',0.02);%添加椒盐噪声

ave1=fspecial('average',3);%产生3×3的均值模版

%ave2=fspecial('average',5);%产生5×5的均值模版

K=filter2(ave1,J)/255;%均值滤波3×3

%M=medfilt2(J,[33]);%中值滤波3×3模板

N=medfilt2(J,[44]);%中值滤波4×4模板

subplot(2,2,1),imshow(I),title('原始图像');

subplot(2,2,2),imshow(J),title('加椒盐噪声');

subplot(2,2,3),imshow(K),title('均值滤波图像');

subplot(2,2,4),imshow(N),title('中值滤波图像');

生成图像

2.选取一幅含高斯噪声图像,用巴特沃斯低通,指数低通和梯形低通处理该图像。

[I,map]=imread('图片3.png');

noisy=imnoise(I,'gaussian',0.01);

imshow(noisy,map);

[MN]=size(I);

F=fft2(noisy);

fftshift(F);

Dcut=100;

D0=150;

D1=250;

foru=1:

M

forv=1:

N

D(u,v)=sqrt(u^2+v^2);

BUTTERH(u,v)=1/(1+(sqrt

(2)-1)*(D(u,v)/Dcut)^2);

EXPOTH(u,v)=exp(log(1/sqrt

(2))*(D(u,v)/Dcut)^2);

ifD(u,v)

TRAPEH(u,v)=1;

elseifD(u,v)<=D1

TRAPEH(u,v)=(D(u,v)-D1)/(D0-D1);

elseTRAPEH(u,v)=0;

end

end

end

BUTTERG=BUTTERH.*F;

BUTTERfiltered=ifft2(BUTTERG);

EXPOTG=EXPOTH.*F;

EXPOTGfiltered=ifft2(EXPOTG);

TRAPEG=TRAPEH.*F;

TRAPEfiltered=ifft2(TRAPEG);

subplot(2,2,1),imshow(noisy);title('高斯噪声');

subplot(2,2,2),imshow(BUTTERfiltered,map);title('巴特沃斯低通滤波');subplot(2,2,3),imshow(EXPOTGfiltered,map);title('指数型低通滤波');subplot(2,2,4),imshow(TRAPEfiltered,map);title('梯形低通滤波');

生成图像

3.选取一幅图像,采用sobel算子,prewitt算子和拉普拉斯算子对图像进行锐化处理

I=imread('图片3.png');

subplot(2,3,1),imshow(I);title('原图像');%显示原图像

H=fspecial('sobel');%应用sobel算子锐化图像

I2=filter2(H,I);%sobel算子滤波锐化

subplot(2,3,2);imshow(I2);%显示sobel算子锐化图像

title('sobel算子锐化图像');

I=double(I);

h=[0,1,0,1,-4,1,0,1,0];

J=conv2(I,h,'same');

%K=I-J;

subplot(2,3,3),imshow(J);title('laplace算子锐化图像');

I=double(I);

h1=[1,0,-1,1,0,-1,1,0,-1];

J1=conv2(I,h1,'same');

%K=I-J;

subplot(2,3,4),imshow(J1);

title('prewitt算子锐化图像');

生成图像

第五章图像分割

1.选取一幅图像,用Sobel,Roberts,Prewitt,LOG,Canny算子进行边缘检测,观察效果

f=imread('图片3.png');

%[gv,t1]=edge(f,'sobel');%使用edge函数对图像f提取垂直的边缘

gv=edge(f,'sobel');

subplot(2,3,1),imshow(gv);

title('sobel算子提取边缘');

f=imread('图片3.png');

%[gv,t1]=edge(f,'roberts');%使用edge函数对图像f提取垂直的边缘

gv=edge(f,'roberts');

subplot(2,3,2),imshow(gv);

title('roberts算子提取边缘');

f=imread('图片3.png');

%[gv,t1]=edge(f,'prewitt');%使用edge函数对图像f提取垂直的边缘

gv=edge(f,'prewitt');

subplot(2,3,3),imshow(gv);

title('prewitt算子提取边缘');

f=imread('图片3.png');

%[gv,t1]=edge(f,'log');%使用edge函数对图像f提取垂直的边缘

gv=edge(f,'log');

subplot(2,3,4),imshow(gv);

title('log算子提取边缘');

f=imread('图片3.png');

%[gv,t1]=edge(f,'canny');%使用edge函数对图像f提取垂直的边缘

gv=edge(f,'canny');

subplot(2,3,5),imshow(gv);

title('cannny算子提取边缘');

生成图像

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2