1、数字图像处理实验报告学 院: 专 业: 班 级:姓 名:学 号: 实验一实验名称:图像增强实验目的:1.熟悉图像在 Matlab 下的读入,输出及显示;2.熟悉直方图均衡化;3.熟悉图像的线性指数等;4.熟悉图像的算术运算及几何变换.实验仪器:计算机,Matlab 软件实验原理:图像增强是为了使受到噪声等污染图像在视觉感知或某种准则下尽量的恢复到原始图像的水平之外,还需要有目的性地加强图像中的某些信息而抑制另一些信息,以便更好地利用图像。图像增强分频域处理和空间域处理,这里主要用空间域的方法进行增强。空间域的增强主要有:灰度变换和图像的空间滤波。图像的直方图实际上就是图像的各像素点强度概率密度
2、分布图,是一幅图像所有像素集合的最基本统计规律,均衡化是指在每个灰度级上都有相同的像素点过程。实验内容如下: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(原始图像直方图) 一一一 一一一一0100200300一一一一一一一0 100 200几何运算:I=imread(E:cs.jpg);%读取图像subplo
3、t(1,2,1),imshow(I);theta = 30;K = imrotate(I,theta); subplot(1,2,2),imshow(K)对数运算:I=imread(E:dog.jpg);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=(22*(f-1)
4、-1f=uint8(f);g=uint8(g);一一一 一一一一一一一一一一一一subplot(1,2,1);subimage(f),title(变换一)subplot(1,2,2);subimage(g),title(变换二)加法运算:clc;clear all;close all;i = imread(E:dog.jpg);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 = imno
5、ise(i,gaussian,0,0.02);j1 = im2double(j);k = k + j1;endk=k/100;subplot(1,3,3),imshow(k),title(图三)一一一200 400 600100200300400500一一一200 400 600100200300400500实验二实验名称:图像变换实验目的:(1)进一步对 matlab 的了解和使用;(2)学习如何在 matlab 中对数字图像的处理;实验原理:图像和其他信号一样,既能在空间域处理,也能在频率域处理。把图像信息从空域变换到频域,可以更好的分析加工处理。因为图像信息的频域处理具有如下特点:(1)
6、能量守恒,但能量重新分配;(2)有利于提取图像的某些特征;(3)正交变换具有能量集中作用,可以实现图像的高效压缩编码; (4)频域用快速算法;实验器材:电脑 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(傅里叶变换)
7、J(abs(J)T);Tnew=(mean(I(r1)+mean(I(r2)/2;done=abs(Tnew-T)1;T=Tnew;i=i+1;endI(r1)=0;I(r2)=1;subplot(1,2,2);imshow(I);title(迭代效果图);OTSU 方法I=imread(E:dog.jpg);I=rgb2gray(I);figuresubplot(1,2,1)imshow(I);title(原图);width,height=size(I);level=graythresh(I);BW=im2bw(I,level);subplot(1,2,2)imshow(BW);title(
8、OSTU 阈值分割效果图);一 一 OSTU一 一 一 一 一 一 一边缘点检测:Prewitt 算子检测图像的边缘、不同 值的 LoG 算子检 测图像的边缘、Canny 算子检测图像的边缘I = imread(bacteria.BMP);BW1 = edge(I,prewitt,0.04); figure(1);imshow(I);figure(2);imshow(BW1);Prewitt 算子检测图像的边缘I = imread(E:bacteria.BMP);BW1 = edge(I,log,0.003); % =2imshow(BW1);title(=2)BW1 = edge(I,log
9、,0.003,3); % =3figure, imshow(BW1);title(=3)不同 值的 LoG 算子检测图像的边缘=3I = imread(E:bacteria.BMP);imshow(I);BW1 = edge(I,canny,0.2);figure,imshow(BW1);Canny 算子检测图像的边缘(2)对检测目标图像提取特征并进行分析(基于区域的图像特征提取)a=imread(E:dog.jpg);%读入图像subplot(2,2,1);%设置原始图像显示位置imshow(a);%显示原始图像title(原始图像);%命名为原始图像f=rgb2gray(a);%将原始图像
10、转换成灰度图像B=medfilt2(f);%将图像进行中值滤波subplot(2,2,2);%设置灰度图像显示位置imshow(B);title(灰度图像);seedx=256,128,300;seedy=128,256,284;hold onplot(seedx,seedy,gs,linewidth,1);title(灰度图像处理);B=double(B);markerim=B=B(seedy(1),seedx(1);for i=2:length(seedx)markerim=markerim|(B=B(seedy(i),seedx(i);endthresh=15,10,15;maskim=
11、zeros(size(B);for i=1:length(seedx)g=abs(B-B(seedy(i),seedx(i)=thresh(i);maskim=maskim|g;endg,nr=bwlabel(imreconstruct(markerim,maskim),8);g=mat2gray(g);subplot(2,2,3);imshow(g);title(最终结果);seedx=156,78,300;seedy=78,156,284;hold onplot(seedx,seedy,gs,linewidth,1);title(灰度图像处理);B=double(B);markerim=B
12、=B(seedy(1),seedx(1);for i=2:length(seedx)markerim=markerim|(B=B(seedy(i),seedx(i);endthresh=15,10,15;maskim=zeros(size(B);for i=1:length(seedx)g=abs(B-B(seedy(i),seedx(i)=thresh(i);maskim=maskim|g;endg,nr=bwlabel(imreconstruct(markerim,maskim),8);g=mat2gray(g);subplot(2,2,3);imshow(g);title(最终结果);s
13、eedx=256,128,300;seedy=128,256,284;hold onplot(seedx,seedy,gs,linewidth,1);title(灰度图像处理);B=double(B);markerim=B=B(seedy(1),seedx(1);for i=2:length(seedx)markerim=markerim|(B=B(seedy(i),seedx(i);endthresh=15,10,15;maskim=zeros(size(B);for i=1:length(seedx)g=abs(B-B(seedy(i),seedx(i)=thresh(i);maskim=
14、maskim|g;endg,nr=bwlabel(imreconstruct(markerim,maskim),8);g=mat2gray(g);subplot(2,2,3);imshow(g);title(最终结果);seedx=108,108,300;seedy=108,108,284;hold onplot(seedx,seedy,gs,linewidth,1);title(灰度图像处理);B=double(B);markerim=B=B(seedy(1),seedx(1);for i=2:length(seedx)markerim=markerim|(B=B(seedy(i),seed
15、x(i);endthresh=15,10,15;maskim=zeros(size(B);for i=1:length(seedx)g=abs(B-B(seedy(i),seedx(i)=thresh(i);maskim=maskim|g;endg,nr=bwlabel(imreconstruct(markerim,maskim),8);g=mat2gray(g);subplot(2,2,3);imshow(g);title(最终结果);seedx=108,108,108;seedy=108,108,108;hold onplot(seedx,seedy,gs,linewidth,1);tit
16、le(灰度图像处理);B=double(B);markerim=B=B(seedy(1),seedx(1);for i=2:length(seedx)markerim=markerim|(B=B(seedy(i),seedx(i);endthresh=15,10,15;maskim=zeros(size(B);for i=1:length(seedx)g=abs(B-B(seedy(i),seedx(i)=thresh(i);maskim=maskim|g;endg,nr=bwlabel(imreconstruct(markerim,maskim),8);g=mat2gray(g);subpl
17、ot(2,2,3);imshow(g);title(最终结果);seedx=80,50,108;seedy=50,80,108;hold onplot(seedx,seedy,gs,linewidth,1);title(灰度图像处理);B=double(B);markerim=B=B(seedy(1),seedx(1);for i=2:length(seedx)markerim=markerim|(B=B(seedy(i),seedx(i);endthresh=15,10,15;maskim=zeros(size(B);for i=1:length(seedx)g=abs(B-B(seedy(i),seedx(i)=thresh(i);