matlab图像处理综合实验实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数字图像处理》
实验报告
学院:
专业:
班级:
姓名:
学号:
实验一
实验名称:图像增强
实验目的: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:100
j = 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)
100200300400500200400600
100200
300400
500
频域用快速算法;
实验器材:电脑 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)=0
subplot(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:n
wht(:,k)=hadamard(m)*I(:,k)/m; end
for j=1:m
wh(:,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),colorbar
iptsetpref('ImshowAxesVisible','off')
50
100
150
200
250
50100150200250
50
100
150
200
250
50
100
150
200
250
60
70