当前位置:文档之家› matlab图像处理综合实验实验报告

matlab图像处理综合实验实验报告

《数字图像处理》实验报告学院:专业:班级:姓名:学号:实验一实验名称:图像增强实验目的:1.熟悉图像在Matlab下的读入,输出及显示;2.熟悉直方图均衡化;3.熟悉图像的线性指数等;4.熟悉图像的算术运算及几何变换.实验仪器:计算机,Matlab软件实验原理:图像增强是为了使受到噪声等污染图像在视觉感知或某种准则下尽量的恢复到原始图像的水平之外,还需要有目的性地加强图像中的某些信息而抑制另一些信息,以便更好地利用图像。

图像增强分频域处理和空间域处理,这里主要用空间域的方法进行增强。

空间域的增强主要有:灰度变换和图像的空间滤波。

图像的直方图实际上就是图像的各像素点强度概率密度分布图,是一幅图像所有像素集合的最基本统计规律,均衡化是指在每个灰度级上都有相同的像素点过程。

实验内容如下:I=imread('E:\cs.jpg');%读取图像subplot(2,2,1),imshow(I),title('源图像')J=rgb2gray(I)%灰度处理subplot(2,2,2),imshow(J) %输出图像title('灰度图像') %在原始图像中加标题subplot(2,2,3),imhist(J) %输出原图直方图title('原始图像直方图')I=imread('E:\cs.jpg');%读取图像 subplot(1,2,1),imshow(I);subplot(2,2,1),imshow(I),title('源图像')J=rgb2gray(I)%灰度处理subplot(2,2,2),imshow(J),title('灰度变换后图像') J1=log(1+double(J));subplot(2,2,3),imshow(J1,[]),title('对数变换后')指数运算:I=imread('E:\dog.jpg'); f=double(I); g=(2^2*(f-1))-1 f=uint8(f); g=uint8(g);subplot(1,2,1);subimage(f),title('变换一')00100200源图像灰度变换后图像对数变换后subplot(1,2,2);subimage(g),title('变换二') j = imnoise(i,'gaussian',0,0.02);subplot(1,3,1),imshow(i),title('图一') subplot(1,3,2),imshow(j),title('图二') k=zeros(242,308); for p=1:100j = imnoise(i,'gaussian',0,0.02); j1 = im2double(j); k = k + j1; end k=k/100;subplot(1,3,3),imshow(k),title('图三')实验二实验名称:图像变换实验目的: (1)进一步对matlab 的了解和使用; (2)学习如何在matlab 中对数字图像的处理; 实验原理: 图像和其他信号一样,既能在空间域处理,也能在频率域处理。

把图像信息从空域变换到频域,可以更好的分析加工处理。

因为图像信息的频域处理具有如下特点: (1)能量守恒,但能量重新分配; (2)有利于提取图像的某些特征; (3)正交变换具有能量集中作用,可以实现图像的高效压缩编码; (4)100200300400500200400600100200300400500频域用快速算法;实验器材:电脑 matlab 软件 实验内容: (1)了解正交变换基本概念 (2)掌握图像的离散傅里叶和离散余弦变换 (3)熟悉图像的沃尔什及哈达玛变换 实验过程如下: 傅里叶变换I = imread('E:\dog.jpg') I = rgb2gray(I) J = fft2(I)subplot(2,2,1),imshow(I),title('灰度变换') J = fftshift(J)subplot(2,2,2),imshow(log(abs(J)),[]),title('傅里叶变换') J(abs(J)<5000)=0subplot(2,2,3),imshow(log(abs(J)+eps),[]),title('滤波') J = ifftshift(J) K = ifft2(J)subplot(2,2,4),imshow(K,[0 255]),title('傅里叶逆变换')余弦变换: clear all;RGB=imread('E:\dog.jpg'); I=rgb2gray(RGB);figure;imshow(I);title('灰度图像'); J=dct2(I);figure;imshow(log(abs(J)),[]);colormap(jet(64)),colorbar;title('二维离散余弦变换')灰度变换傅里叶变换滤波傅里叶逆变换灰度图像246810沃尔什—哈达玛变换: I=zeros(2.^8);I(2.^7-2.^4+1:2.^7+2.^4,2.^7-2.^4+1:2.^7+2.^4)=ones(2*2.^4); subplot(1,2,1);colormap(gray(128)),imagesc(I); [m,n]=size(I) for k=1:nwht(:,k)=hadamard(m)*I(:,k)/m; endfor j=1:mwh(:,j)=hadamard(n)*wht(j,:)'/n; end wh=wh';subplot(1,2,2);colormap(gray(128)),imagesc(wh);Radon 变换:R=radon (I ,theta ):I 表示待处理的图像,theta 表示Radon 变换的方向角度,可以是一个标量或向量值。

R 的每一列对应图像I 在theta 某祎角度的Radon 变换值。

I=zeros(120,120); I(25:75,25:75)=1; figure;imshow(I);theta=0:180;[R,xp]=radon(I,theta);figure;imshow(R,[],'Xdata',theta,'Ydata',xp,... 'InitialMagnification','fit')xlabel('\theta (degrees)')ylabel('x''') colormap(hot),colorbariptsetpref('ImshowAxesVisible','off')501001502002505010015020025050100150200250501001502002506070实验三实验名称:图像的复原实验目的:1.加深图像复原的相关原理,熟悉相关算法;2.能够产生运动模糊图像,加入高斯,椒盐噪声,并对噪声进行中值,均值,最大值,最小值进行滤波复原;3.对彩色图像RGB转换到HISI,并显示对应分量,同时完成相关平滑滤波。

实验仪器:计算机,Matlab软件实验原理:图像复原的基本思路:先建立退化的数学模型,然后根据该模型对退化图像进行拟图像复原合。

图像复原模型可以用连续数学和离散数学处理,处理项的实现可在空间域卷积,或在频域相乘.图像复原的基本任务:消除模糊。

图像的退化主要是由系统的相关特性以及噪声两方面的因素所导致的,我们可以通过设计一个合适的复原滤波器(即实现逆滤波过程)来实现图像的复原。

图 1 中f(x,y)表示的是一幅静止、二维的图像,它在外部噪声n (x,y)的干扰作用之下,在经过系统h(x,y)之后,退化成为g(x,y),复原后的图像为f(x,y)。

针对于退化图像的复原,我们通常可以采用这样两种方式来进行:其一,当对于原始图像缺乏必需的先验知识时,我们可以采用就退化过程建立一个模型,首先对其进行一个大概的描述,然后在复原的过程根据具体的情况进行逐步合理的修正,逐步消除误差影响。

这种方法建立在对图像的退化过程进行合理的估计的基础之上,从这个角度来看它是一种估计的方法;其二,当我们对原始图像具有足够的先验知识时,我们这时候则直接针对原始图像建立一个精确的数学模型,然后再对退化图像进行复原处理,这种效果更好. 加入噪声:I=imread('E:\dog.jpg');%读取原图像 %考虑是否加入灰度处理J1=imnoise(I,'salt & pepper',0.02); %加入椒盐噪声 J2=imnoise(I,'gaussian',0,0.01);%加入高斯白噪声 J3=imnoise(I,'poisson');%加入泊松噪声 J4=imnoise(I,'speckle',0.04);%加入乘法噪声 figure;subplot(221),imshow(J1);title('加入椒盐噪声后图像') subplot(222),imshow(J2);title('加入高斯白噪声后图像') subplot(223),imshow(J3);title('加入泊松噪声后图像') subplot(224),imshow(J4);title('加入乘法噪声后图像')%对椒盐噪声和高斯白噪声进行imfilter 滤波 rgb=imread('E:\dog.jpg'); h=ones(5,5)/25;rgb1=imfilter(rgb,h);rgb2=imfilter(rgb1,h,'replicate'); figure;subplot(1,3,1);imshow(rgb);title('Original');%原始subplot(1,3,2);imshow(rgb1);title('Filtered');%一维滤波subplot(1,3,3);imshow(rgb);title('boundary replication');%边缘滤波%增加运动滤波,水平边缘增强,拉普拉斯滤波 rgb=imread('E:\dog.jpg');h1=[0,0,0.0000,0.0021,0.0042;0.1958,0.1979,0.2000,0.1979,0.1958 ;0.004加入椒盐噪声后图像加入高斯白噪声后图像加入泊松噪声后图像加入乘法噪声后图像2,0.0021,0.0000,0,0];h2=[ 1,2,1;0,0,0;-1,-2,-1];h3=[0.1667,0.6667,0.1667;0.6667,-3.3333,0.1667;0.1667, 0.6667, 0.1667]; rgb1=imfilter(rgb,h1); rgb2=imfilter(rgb,h2); rgb3=imfilter(rgb,h3); figure;subplot(2,2,1),imshow(rgb),title('原图像') subplot(2,2,2),imshow(rgb1),title('运动滤波') subplot(2,2,3),imshow(rgb2),title('水平边缘增强') subplot(2,2,4),imshow(rgb3),title('拉普拉斯滤波')%fspecial 产生线性滤波器 rgb=imread('E:\dog.jpg'); h1=fspecial('average',[5,3]); h2=fspecial('gaussian',[5,3],1); h3=fspecial('laplacian',0); rgb1=imfilter(rgb,h1); rgb2=imfilter(rgb,h2); rgb3=imfilter(rgb,h3); figure;subplot(2,2,1),imshow(rgb),title('原图像') subplot(2,2,2),imshow(rgb1),title('均值滤波') subplot(2,2,3),imshow(rgb2),title('高斯滤波') subplot(2,2,4),imshow(rgb3)I=imread('E:\dog.jpg');%二值化函数的输入图像既可以是彩色图像也可以是灰度图像th=graythresh(I); %自动确定二值化的最佳阈值原图像运动滤波水平边缘增强拉普拉斯滤波原图像均值滤波高斯滤波J=im2bw(I,th); %二值化阈值可以自己设定,值为0-1之间,而不是0-255,这一点要切记subplot(121),imshow(I);subplot(122),imshow(J);产生运动模糊图像clc;clear all;I = imread('E:\dog.jpg');subplot(121);imshow(I);title('原始图像');H = fspecial('motion',20,45);MotionBlur = imfilter(I,H,'replicate');subplot(122);imshow(MotionBlur);title('运动模糊图像');clc;clear all;I = imread('eight.tif');J = imnoise(I,'salt & pepper',0.02);K = medfilt2(J);subplot(121);imshow(J);title('加入椒盐噪声的图像');subplot(122);imshow(K);title('中值滤波的图像');clc;clear all;I = imread('snowflakes.png'); MAX = ordfilt2(I,25,ones(5,5)); MIN = ordfilt2(I,1,ones(5,5));subplot(221);imshow(I);title('原始图像'); subplot(222);imshow(MAX);title('最大值滤波'); subplot(223);imshow(MIN);title('最小值滤波');实验四加入椒盐噪声的图像中值滤波的图像原始图像最大值滤波最小值滤波实验名称:图像的检测与分割实验目的:(1)进一步对matlab的了解和使用;(2)学习如何在matlab中对数字图像的处理;实验原理:数字图像处理主要目的:一是对图像进行加工和处理,得到满足人的视觉和心理需要的改变进行式。

相关主题