实验报告 - 图文

2025-07-13

《数字图像处理》

实验报告

学院:信息工程学院 专业:电子信息工程

学号:201215409 姓名:张玉波

2015年6月日1

18

实验一 图像的读取、存储和显示

一、实验目的与要求

1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。

3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像的显示。

二、实验原理

一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。

三、实验内容及步骤

1.利用imread( )函数读取一幅图像,假设其名为flower.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像;

4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5. 利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件

设为flower.jpg语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6. 同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为

flower.bmp。

7.用imread()读入图像:Lenna.jpg 和camema.jpg; 8.用imfinfo()获取图像Lenna.jpg和camema.jpg 的大小;

9.用figure,imshow()分别将Lenna.jpg和camema.jpg显示出来,观察两幅图像

的质量。

10. 用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的

特征。

11.将每一步的函数执行语句拷贝下来,写入实验报告,并且将得到第3、9、10步

得到的图像效果拷贝下来。

2

四、实验源程序

clc;clear;close all;

I=imread('D:\\picture\\flower.tif');% 读入原图像,tif格式 whos I ; % 显示图像I的基本信息 imfinfo ('D:\\picture\\flower.tif');

imwrite(I,'D:\\picture\\flower.jpg','quality',50);

imwrite(I,'D:\\picture\\flower.bmp'); % 以位图(BMP)的格式存储图像 g=im2bw(I); % 将图像转为二值图像 imwrite(g,'D:\\picture\\flower1.tif');

subplot(2,2,1),imshow(I),title('原图(tif格式)');

subplot(2,2,2),imshow('D:\\picture\\flower.jpg'),title('压缩图(jpg格式)'); subplot(2,2,3),imshow('D:\\picture\\flower.bmp'),title('位图(BMP格式)'); subplot(2,2,4),imshow(g),title('二值图');

四、实验结果

原图(tif格式)压缩图(jpg格式)位图(BMP格式)二值图

3

实验二 图像直方图分析

一.实验目的

1.了解MATLAB的操作环境和基本功能。

2.掌握MATLAB中图像增强与平滑的函数的使用方法。 3.加深理解图像增强与平滑的算法原理。

二、实验内容

(一)研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。(可将每段程序保存为一个.m文件)

1.直方图均衡化 2.直接灰度变换

3.空域平滑滤波(模糊、去噪) 4.空域锐化滤波

(二)采用MATLAB底层函数编程实现 1.灰度变换之动态范围扩展

假定原图像f(x, y)的灰度范围为[a, b],希望变换后图像 g(x, y)的灰度范围扩展至[c, d],则线性变换可表示为:

g(x,y)?d?c[f(x,y)?a]?c b?a 用MATLAB底层函数编程实现上述变换函数。观察图像‘ pout.tif’的灰度直方图,选择合适的参数[a, b]、[c, d]对图像‘pout.tif’进行灰度变换,以获得满意的视觉效果。

2.非锐化掩蔽和高斯滤波

从原图像中减去其非锐化(平滑过的)图像的过程称为非锐化掩蔽,其基本步骤为: ⑴对原图像进行平滑滤波得到模糊图像f(x,y);

⑵从原图像中减去模糊图像,产生的差值图像称为模板gmask(x,y); ⑶将模板加到原图像上,得到锐化后的图像g(x,y)。 即,

4

gmask(x,y)?f(x,y) - f(x,y)

g(x,y)?f(x,y)?k?gmask(x,y);k?1

用MATLAB函数编程实现上述功能。

三、实验源程序

(一)

1.直方图均衡化 clc;clear all; close all I=imread('pout.tif'); subplot(2,3,1); imshow(I); title('原图'); subplot(2,3,2);

imhist(I); % 显示原图的直方图 title('原图的直方图');

[I2,T]=histeq(I); %原图进行均衡化 subplot(2,3,3);

imshow(I2); %显示均衡化后图 title('均衡化后的图'); subplot(2,3,4);

imhist(I2); %显示原图均衡化后的直方图 title('原图均衡化后的直方图'); subplot(2,3,5);

plot((0:255)/255,T); % 绘制均衡化函数图 title('均衡化函数图');

imwrite(I2, 'D:\\picture1\\pout.png');

imfinfo('D:\\picture1\\pout.png')%显示写入图的信息 2.直接灰度变换 clc;clear all; close all I=imread('cameraman.tif');

subplot(2,3,1),imshow(I),title('原图(cameraman)'); J=imadjust(I,[0 0.2],[0.5 1]);

subplot(2,3,2),imshow(J),title('图cameraman调整灰度值后的图 '); [X,MAP] = imread('forest.tif');%X为图像数据矩阵,MAP为颜色表数据矩阵

5


实验报告 - 图文.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:上海电机学院三维虚拟智慧图书馆(定稿)

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219