数字图像处理实验报告(全答案).. 下载本文

实验一 常用MATLAB图像处理命令

一、实验目的

1、熟悉并掌握MATLAB工具的使用;

2、实现图像的读取、显示、代数运算和简单变换。 二、实验环境

MATLAB 6.5以上版本、WIN XP或WIN2000计算机

三、常用函数 ? 读写图像文件

1 imread

imread函数用于读入各种图像文件,如:a=imread('e:\\w01.tif') 2 imwrite

imwrite函数用于写入图像文件,如:imwrite(a,'e:\\w02.tif',’tif’) 3 imfinfo

imfinfo函数用于读取图像文件的有关信息,如:imfinfo('e:\\w01.tif') ? 图像的显示

1 image

image函数是MATLAB提供的最原始的图像显示函数,如: a=[1,2,3,4;4,5,6,7;8,9,10,11,12]; image(a); 2 imshow

imshow函数用于图像文件的显示,如: i=imread('e:\\w01.tif');

imshow(i);

title(‘原图像’)%加上图像标题

3 colorbar

colorbar函数用显示图像的颜色条,如: i=imread('e:\\w01.tif'); imshow(i); colorbar; 4 figure

figure函数用于设定图像显示窗口,如:figure(1); /figure(2); 5 subplot

把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示。 Subplot(m,n,p)分成m*n个小窗口,在第p个窗口中创建坐标轴为当前坐标轴,用于显示图形。

6 plot 绘制二维图形 plot(y)

Plot(x,y)xy可以是向量、矩阵。 ? 图像类型转换

1 rgb2gray//灰色 把真彩图像转换为灰度图像 i=rgb2gray(j) 2 im2bw//黑白

通过阈值化方法把图像转换为二值图像 I=im2bw(j,level)

Level表示灰度阈值,取值范围0~1(即0.n),表示阈值取自原图像灰度范围的n%

3 imresize 改变图像的大小

I=imresize(j,[m n])将图像j大小调整为m行n列 ? 图像运算

1 imadd

两幅图像相加,要求同样大小,同种数据类型 Z=imadd(x,y)表示图像x+y 2 imsubstract

两幅图像相减,要求同样大小,同种数据类型 Z=imsubtract(x,y) 表示图像x-y 3 immultiply

Z=immultiply(x,y) 表示图像x*y 4 imdivide

Z=imdivide(x,y) 表示图像x/y 5:m = imadjust(a,[,],[0.5;1]) ;%图像变亮 n = imadjust(a,[,],[0;0.5]) ;%图像变暗 g=255-a;%负片效果

四、实验内容(请将实验程序填写在下方合适的位置,实验图像结果拷屏粘贴) 1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。

a=imread('f:\\1.jpg') i = rgb2gray(a) I = im2bw(a,0.5)

subplot(3,1,1);imshow(a);title('原图像') subplot(3,1,2);imshow(i);title('灰度图像') subplot(3,1,3);imshow(I);title('二值图像')

2、对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。 a=imread('f:\\1.jpg')

A=imresize(a,[800 800]) b=imread('f:\\2.jpg')

B=imresize(b,[800 800]) Z1=imadd(A,B) Z2=imsubtract(A,B) Z3=immultiply(A,B) Z4=imdivide(A,B)

subplot(3,2,1); imshow(A);title('原图像A') subplot(3,2,2); imshow(B);title('原图像B') subplot(3,2,3); imshow(Z1);title('加法图像') subplot(3,2,4); imshow(Z2);title('减法图像') subplot(3,2,5); imshow(Z3);title('乘法图像') subplot(3,2,6); imshow(Z2);title('除法图像')

3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。

a=imread('f:\\1.jpg');

m = imadjust(a,[,],[0.5;1]) ;%图像变亮 n = imadjust(a,[,],[0;0.5]) ;%图像变暗 g=255-a;%负片效果

subplot(2,2,1);imshow(a);title('原图像') subplot(2,2,2);imshow(m);title('图像变亮') subplot(2,2,3);imshow(n);title('图像变暗') subplot(2,2,4);imshow(g);title('负片效果')