当前位置:文档之家› 图像处理实例(含Matlab代码)

图像处理实例(含Matlab代码)

信号与系统实验报告——图像处理学院:信息科学与工程学院专业:2014级通信工程组长:**组员:**2017.01.02目录目录 (2)实验一图像一的细胞计数 (3)一、实验内容及步骤 (3)二、Matlab程序代码 (3)三、数据及结果 (4)实验二图像二的图形结构提取 (5)一、实验内容及步骤 (5)二、Matlab程序代码 (5)三、数据及结果 (6)实验三图像三的图形结构提取 (7)一、实验内容及步骤 (7)二、Matlab程序代码 (7)三、数据及结果 (8)实验四图像四的傅里叶变化及巴特沃斯低通滤波 (9)一、实验内容及步骤 (9)二、Matlab程序代码 (9)三、数据及结果 (10)实验五图像五的空间域滤波与频域滤波 (11)一、实验内容及步骤 (11)二、Matlab程序代码 (11)三、数据及结果 (12)实验一图像一的细胞计数一、实验内容及步骤将该图形进行一系列处理,计算得到途中清晰可见细胞的个数。

首先,由于原图为RGB三色图像处理起来较为麻烦,所以转为灰度图,再进行二值化化为黑白图像,得到二值化图像之后进行中值滤波得到细胞分布的初步图像,为了方便计数对图像取反,这时进行一次计数,发现得到的个数远远多于实际个数,这时在进行一次中值滤波,去掉一些不清晰的像素点,剩下的应该为较为清晰的细胞个数,再次计数得到大致结果。

二、Matlab程序代码clear;close all;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,[3 3]);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,[20 20]);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;close all;Image = imread('2.jpg');figure,imshow(Image),title('原图');Image=rgb2gray(Image);figure,imshow(Image),title('灰度图');w4 = [1 1 1;1 -8 1;1 1 1 ];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;close all;Image = imread('3.jpg');figure,imshow(Image),title('原图');Image=rgb2gray(Image);figure,imshow(Image),title('灰度图');w4 = [1 1 1;1 -8 1;1 1 1 ];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);colorbarxlabel('(b)原始图像的傅里叶变换图像');[N1,N2]=size(g);n=2;d0=5;n1=fix(N1/2);n2=fix(N2/2);for i=1:N1for j=1:N2d=sqrt((i-n1)^2+(j-n2)^2);if d==0h=0;elseh=1/(1+(d/d0)^(2*n));endresult(i,j)=h*g(i,j);endendF3=log(abs(result));subplot(223),imshow(F3,'InitialMagnification','fit');colormap(jet);colorbarxlabel('(c)滤波后的傅里叶变换图像')result=ifftshift(result);X2=ifft2(result);X3=uint8(real(X2));subplot(224),imshow(X3)xlabel('(d)Butterworth低通滤波图像');三、数据及结果结论:通过图b我们可以看出图像的能量主要集中在低频部分,高频中存在少量的能量,经过了低通滤波之后,图像变得模糊,这时通过图c我们可以发现高频部分已经被滤去,图像上只剩下了低频成分。

实验五图像五的空间域滤波与频域滤波一、实验内容及步骤该实验分别对此图形进行空间域的滤波以及频域上的滤波,观察实验结果。

首先,进行空间域上的滤波,为了能更好的观察滤波效果,先对图像添加较为密集的高斯噪声,然后分别进行均值滤波,高斯滤波以及拉普拉斯滤波,并观察实验结果。

其次,进行频域的滤波,同样为了能更好的观察滤波效果,先对图像添加较为密集的高斯噪声,然后分别进行理想低通滤波以及高斯低通滤波,并观察实验结果。

二、Matlab程序代码%空间域滤波clc;close all;I1=imread('4.jpg');I=imnoise(I1,'gaussian');w1=fspecial('average',[3 3]);w3=fspecial('gaussian',[3 3],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;close all;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);for i=1:Mfor j=i:Nif(sqrt(((i-M/2)^2+(j-N/2)^2))<D0)h1(i,j)=1;endendendG1=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(-(D.^2)./(2*(D0^2))); %设计高斯滤波器J=fftshift(fft2(I,size(H,1),size(H,2)));G=J.*H;L=ifft2(fftshift(G));L=L(1:size(I,1),1:size(I,2));subplot(2,3,1);imshow(f);title('原图');subplot(2,3,2);imshow(g1);title('理想低通滤波');subplot(2,3,4);imshow(L);title('高斯低通滤波');三、数据及结果空间域滤波结果:频域滤波结果:。

相关主题