图像处理实例含Matlab代码.docx
《图像处理实例含Matlab代码.docx》由会员分享,可在线阅读,更多相关《图像处理实例含Matlab代码.docx(19页珍藏版)》请在冰豆网上搜索。
![图像处理实例含Matlab代码.docx](https://file1.bdocx.com/fileroot1/2022-10/8/42ac8fd2-d660-40b9-8fdf-67658f943c24/42ac8fd2-d660-40b9-8fdf-67658f943c241.gif)
图像处理实例含Matlab代码
图像处理实例(含Matlab代码)
信号与系统实验报告
——图像处理
学院:
信息科学与工程学院
专业:
2014级通信工程
组长:
**
组员:
**
2017.01.02
些不清晰的像素点,剩下的应该为较为清晰的细胞个数,再次计数得到大致结果。
二、Matlab程序代码
clear;closeall;
Image=imread('1.jpg');
figure,imshow(Image),title('原图');
Image=rgb2gray(Image);
figure,imshow(Image),title('灰度图');
Theshold=graythresh(Image);
Image_BW=im2bw(Image,Theshold);
Reverse_Image_BW22=~Image_BW;
figure,imshow(Image_BW),title('二值化图像');
Image_BW_medfilt=medfilt2(Image_BW,[33]);
figure,imshow(Image_BW_medfilt),title('中值滤波后的二值化图像');
Reverse_Image_BW=~Image_BW_medfilt;
figure,imshow(Reverse_Image_BW),title('图象取反');
Image_BW_medfilt2=medfilt2(Reverse_Image_BW,[2020]);
figure,imshow(Image_BW_medfilt2),title('第二次中值滤波的二值化图像');
[Label,Number]=bwlabel(Image_BW_medfilt,8);Number
[Label,Number]=bwlabel(Image_BW_medfilt2,8);Number
三、数据及结果
原图灰度图
二值化图像中值滤波后的二值化图像
图像取反第二次中值滤波的二值化图像
结果:
经过一次中值滤波得到的细胞个数为:
1498个。
经过第二次中值滤波去掉不清晰的细胞得到的细胞个数为211个。
实验二图像二的图形结构提取
一、实验内容及步骤
将该图形进行一系列处理,得到该生物模糊部分的大致结构。
首先,将原图转为灰度图,再进行图像锐化,突出图像的各个边界部分,然后进行二值化得到二值化图像,之后进行图像边界的提取,提取之后由于边界像素点不够连续,所以再进行一次闭运算用以连接边界,得到结果图像。
二、Matlab程序代码
clear;closeall;
Image=imread('2.jpg');
figure,imshow(Image),title('原图');
Image=rgb2gray(Image);
figure,imshow(Image),title('灰度图');
w4=[111;1-81;111];
Image=im2double(Image);
K=imfilter(Image,w4,'replicate');
KN=Image-K;
figure,imshow(KN),title('ruihua');
KN=imclose(KN,strel('rectangle',[2,2]));
KN=imopen(KN,strel('rectangle',[2,2]));
Theshold=graythresh(KN);
Image_BW=im2bw(Image,Theshold);
Reverse_Image_BW22=~Image_BW;
figure,imshow(Image_BW),title('初次二值化图像');
BW2=bwmorph(Image_BW,'remove');
figure,imshow(BW2),title('边界图像');
BW3=imclose(BW2,strel('rectangle',[10,10]));
figure,imshow(BW3),title('闭运算');
三、数据及结果
原图灰度图
锐化图像二值化图像
边界图像闭运算后得到结果
实验三图像三的图形结构提取
一、实验内容及步骤
操作方法及目的同实验二,将该图形进行一系列处理,得到该生物模糊部分的大致结构。
首先,将原图转为灰度图,再进行图像锐化,突出图像的各个边界部分,然后进行二值化得到二值化图像,之后进行图像边界的提取,提取之后由于边界像素点不够连续,所以再进行一次闭运算用以连接边界,得到结果图像。
二、Matlab程序代码
clear;closeall;
Image=imread('3.jpg');
figure,imshow(Image),title('原图');
Image=rgb2gray(Image);
figure,imshow(Image),title('灰度图');
w4=[111;1-81;111];
Image=im2double(Image);
K=imfilter(Image,w4,'replicate');
KN=Image-K;
figure,imshow(KN),title('ruihua');
KN=imclose(KN,strel('rectangle',[2,2]));
KN=imopen(KN,strel('rectangle',[2,2]));
Theshold=graythresh(KN);
Image_BW=im2bw(Image,Theshold);
Reverse_Image_BW22=~Image_BW;
figure,imshow(Image_BW),title('初次二值化图像');
BW2=bwmorph(Image_BW,'remove');
figure,imshow(BW2),title('边界图像');
BW3=imclose(BW2,strel('rectangle',[10,10]));
figure,imshow(BW3),title('闭运算');
三、数据及结果
原图灰度图
锐化图像二值化图像
边界图像闭运算后得到结果
实验四图像四的傅里叶变化及巴特沃斯低通滤波
一、实验内容及步骤
首先,为方便处理将原图转为灰度图,然后进行图像的傅里叶变换,得到傅里叶变换后的图像,之后进行巴特沃斯低通滤波,得到滤波后的图像以及滤波后的傅里叶变换图像。
二、Matlab程序代码
I1=imread('4.jpg');
I1=rgb2gray(I1);
subplot(221),imshow(I1);
xlabel('(a)原始图像');
f=double(I1);
g=fft2(f);
g=fftshift(g);%
F2=log(abs(g));
subplot(222),imshow(F2,[],'InitialMagnification','fit');
colormap(jet);colorbar
xlabel('(b)原始图像的傅里叶变换图像');
[N1,N2]=size(g);
n=2;
d0=5;
n1=fix(N1/2);
n2=fix(N2/2);
fori=1:
N1
forj=1:
N2
d=sqrt((i-n1)^2+(j-n2)^2);
ifd==0
h=0;
else
h=1/(1+(d/d0)^(2*n));
end
result(i,j)=h*g(i,j);
end
end
F3=log(abs(result));
subplot(223),imshow(F3,'InitialMagnification','fit');
colormap(jet);colorbar
xlabel('(c)滤波后的傅里叶变换图像')
result=ifftshift(result);
X2=ifft2(result);
X3=uint8(real(X2));
subplot(224),imshow(X3)
xlabel('(d)Butterworth低通滤波图像');
三、数据及结果
结论:
通过图b我们可以看出图像的能量主要集中在低频部分,高频中存在少量的能量,经过了低通滤波之后,图像变得模糊,这时通过图c我们可以发现高频部分已经被滤去,图像上只剩下了低频成分。
实验五图像五的空间域滤波与频域滤波
一、实验内容及步骤
该实验分别对此图形进行空间域的滤波以及频域上的滤波,观察实验结果。
首先,进行空间域上的滤波,为了能更好的观察滤波效果,先对图像添加较为密集的高斯噪声,然后分别进行均值滤波,高斯滤波以及拉普拉斯滤波,并观察实验结果。
其次,进行频域的滤波,同样为了能更好的观察滤波效果,先对图像添加较为密集的高斯噪声,然后分别进行理想低通滤波以及高斯低通滤波,并观察实验结果。
二、Matlab程序代码
%空间域滤波
clc;closeall;
I1=imread('4.jpg');
I=imnoise(I1,'gaussian');
w1=fspecial('average',[33]);
w3=fspecial('gaussian',[33],0.5);
w4=fspecial('laplacian',0.1);
g1=imfilter(I,w1,'replicate');
g3=imfilter(I,w3,'replicate');
g4=imfilter(I,w4,'replicate');
subplot(3,3,1);imshow(I);title('原图');
subplot(3,3,2);imshow(g1);title('均值滤波');
subplot(3,3,4);imshow(g3);title('高斯滤波');
subplot(3,3,5);imshow(g4);title('拉普拉斯滤波');
figure;
%频域滤波
clc;closeall;
I1=imread('4.jpg');
I1=rgb2gray(I1);
I=imnoise(I1,'gaussian');
f=im2double(I);
F=fft2(double(f));%傅里叶变换
F=fftshift(F);%将变换的原点移到频率矩形的中心
[M,N]=size(f);
%理想低通滤波
D0=input('输入截止频率');
h1=zeros(M,N);
fori=1:
M
forj=i:
N
if(sqrt(((i-M/2)^2+(j-N/2)^2))h1(i,j)=1;
end
end
end
G1=F.*h1;
G1=ifftshift(G1);
g1=real(ifft2(G1));
%高斯低通滤波
I=im2double(I);
M=2*size(I,1);
N=2*size(I,2);%滤波器的行列数
u=-M/2:
(M/2-1);
v=-N/2:
(N/2-1);
[U,V]=meshgrid(u,v);
D=sqrt(U.^2+V.^2);
D0=20;
H=exp(-(