数字图像处理实验

数字图像处理实验
数字图像处理实验

目录

实验1 数字图像处理的MATLAB基础................. 错误!未定义书签。实验2 灰度图像增强.. (2)

实验3 空域滤波 (4)

实验4 图像的二维傅里叶变换和频谱 (6)

实验5 图像频域增强 (8)

实验6 图像复原.................................. 错误!未定义书签。实验7 彩色图像变换. (11)

实验8 彩色图像滤波 (13)

实验9 图像边缘检测 (15)

附录一图像数据文件格式 (17)

附录二实验报告格式 (20)

实验2 灰度图像增强

一、实验目的

通过本实验使学生掌握使用MATLAB对灰度图像进行空域增强的目的,加深对空域图像增强的理解。

二、实验原理

本实验是基于数字图像处理课程中的图像变换和增强理论来设计的。

本实验的准备知识:教材第三章,空域图像增强方法。重点如下:

1、直方图和直方图均衡

通过实验领悟图像的直方图的含义,加深对图像直方图概念的理解,并且能够掌握直方图均衡的方法和效果。

画图像的直方图命令, imhist(A)

直方图均衡命令, Aeq=histeq(A)

2、基本灰度变换

3、同屏显示图像的函数

图形窗口分区的命令为 subplot, 例如subplot (2,2,1) 是将图形窗分为2×2的4个区,在第1个区画图。示例

figure

subplot(1,2,1) imshow(A);

subplot(1,2,2) imshow(Aeq);

将图形窗口分为两个区,分别显示图像A和Aeq。

三、实验内容

(一)直方图均衡

1、读入lena_gray.tif图像文件,画出其直方图,并解释之;

2、对该图像进行直方图均衡,显示均衡后的图像及其直方图,并解释之;

3、将均衡后的图像存为lena_gray_1.tif文件。

4、再将lena_gray_1.tif文件读入并重复上述过程,说明增强效果并解释之。

(二)图像灰度变换

读入lena_gray.tif文件,对其灰度进行下列调整,并显示图像:

(1)将图像的灰度降低70%,同屏显示原图像和灰度调整后图像;

(2)将图像灰度加上一个值(如50),使图像变亮,编程,同屏显示原图像和灰度调整后图像。

思考:灰度变换时应该注意什么?

(3)画出灰度变换前后图像的直方图,进行比较,说明现象和原因。

(4)使用MA TLAB工具箱函数imadjust来调整亮度,imcomplement函数进行反色。

四、实验方法与步骤

1、顺序完成上述实验内容

2、按照实验内容要求,分析编程,将程序和实验结果整理成word文档,分析结果,编写实验报告。

五、实验报告要求

1、本实验由学生单人独立完成。

2、每个实验均按统一格式编写实验报告。

实验报告内容包括:实验要求,实验项目,典型程序流程图,程序清单,数据结果和分析讨论。

实验3 空域滤波

一、实验目的

通过本实验使学生掌握使用MATLAB对灰度图像进行空域增强的目的,加深对图像空域滤波增强方法的理解。

二、实验原理

本实验是基于数字图像处理课程中的图像变换和增强理论来设计的。

本实验的准备知识:第三章,空域图像增强方法。重点如下:

1、空域滤波技术:

添加噪声命令:imnoise

中值滤波技术,复习教材中的中值滤波技术,自己编程实现中值滤波函数,并用自编的函数开展下列实验。

均值滤波技术,复习教材中的中值滤波技术,自己编程实现中值滤波函数,并用自编的函数开展下列实验。

2、MATLAB下设计滤波器的函数

中值滤波命令:B=medfilt2 (I,[3,3]) %使用3×3中值滤波器对I滤波

均值滤波技术:

先定义模板,如 H=1/9*ones(3,3), 或 H=fspecial(‘average’,[3,3]);

然后使用命令 I1=imfilter(I, H)对图像I消噪。

【说明:要求学生先自己编写中值滤波或均值滤波的m函数,加深对这两个滤波器的理解。】

三、实验内容

(一)空域滤波

读入lena_gray.tif文件,进行下列操作:

(1)将图像添加上椒盐噪声,A_noised=imnoise(A, ‘salt & pepper’, 0.02),同屏显示原图像和加噪图像,说明椒盐噪声的特点;

(2)设计3×3、5×5,7×7三种模板的算术均值滤波器对图像进行滤波,同屏显示加噪图像和消噪图像,对滤波效果进行解释和说明;

(3)设计3×3、5×5,7×7三种模板的中值滤波器对图像进行滤波,同屏显示加噪图像和消噪图像,对滤波效果进行解释和说明;

(4)将图像添加上高斯噪声,A_noised=imnoise(A, ‘gauss’, 0.02),同屏显示原图像和加噪图像,说明高斯噪声的特点;

(5)设计3×3、5×5,7×7三种模板的算术均值滤波器对图像进行滤波,同屏显示加噪图像和消噪图像,对滤波效果进行解释和说明;

(6)设计3×3、5×5,7×7三种模板的中值滤波器对图像进行滤波,同屏显示加噪图像和消噪图像,对滤波效果进行解释和说明。

(二)使用MATLAB环境下的均值滤波和中值滤波函数进行上述图像处理。

思考:椒盐噪声和高斯噪声有何不同特点?分别使用何种滤波器消噪效果好?

四、实验方法与步骤

1、顺序完成上述实验内容

2、按照实验内容要求,分析编程,将程序和实验结果整理成word文档,分析结果,编写实验报告。

五、实验报告要求

1、本实验由学生单人独立完成。

2、每个实验均按统一格式编写实验报告。

实验报告内容包括:实验要求,实验项目,典型程序流程图,程序清单,数据结果和分析讨论。

实验4 图像的二维傅里叶变换和频谱

一、实验目的

通过本实验使学生掌握使用MATLAB进行二维傅里叶变换的方法,加深对二维傅里叶变换的理解和图像频谱的理解。

二、实验原理

本实验是基于数字图像处理课程中的二维傅里叶变换理论来设计的。

本实验的准备知识:第四章频域图像增强中的一维傅里叶变换和二维傅里叶变换,频域图像增强的步骤,频域滤波器。

实验用到的基本函数:

一维傅里叶变换函数: fft,

一维傅里叶反变换函数:ifft

频谱搬移函数:fftshift

二维傅里叶变换函数:fft2

二维傅里叶反变换函数:ifft2

绘图函数:imshow, mesh

【说明,如对上述函数的使用方法有疑问,请先用help命令查询。建议先用help命令查询器应用方法,再做具体实验内容。】

例:计算图像f的频谱并显示

F=fft2(f);

S=abs(F); %求幅度

imshow(S,[]);%显示图像幅度频谱

Fc=fftshift(F); %将图像频谱原点移动到中心显示

imshow(abs(Fc));

三、实验内容

(一)一维傅里叶变换的实现和分析

1、生成一个一维向量,x=[1 2 3 4 5 6 7 8]; 计算该向量的傅里叶变换,并由

傅里叶变换求反变换,验证结果。

2、在时间域中将x乘以(-1)n,计算其傅里叶变换,实现傅里叶变换的平移性质

3、使用fftshift函数,实现频谱的平移。

(二)二维傅里叶变换的实现和分析

产生如图所示图象 f1(x,y)(64×64大小,中间亮条宽

16,高40,居中,暗处=0,亮处=255),用MATLAB中的fft2

函数求其傅里叶变换,要求:

1、同屏显示原图f1和FFT(f1)的幅度谱图;

2、若令f2(x,y)=(-1)x+y f1(x,y),重复过程1,比较二

者幅度谱的异同,简述理由;

3、若将f2(x,y)顺时针旋转90度得到f3(x,y),试显示FFT(f3)的幅度谱,并与

FFT(f2)的幅度谱进行比较。

(三)任意图像的频谱显示

1、读入图像lenagray.tif,计算该图像的频谱,并将频谱原点移到中心位置显示。

2、读入图像rice.tif,计算该图像的频谱,并将频谱原点移到中心位置显示。

思考:

图像频谱有何特点?低频分量和高频分量在图像频谱中是怎样分布的?

四、实验方法与步骤

1、顺序完成上述实验内容

2、按照实验内容要求,分析编程,将程序和实验结果整理成word文档,分析结果,编写实验报告。

五、实验报告要求

1、本实验由学生单人独立完成。

2、每个实验均按统一格式编写实验报告。

实验报告内容包括:实验要求,实验项目,典型程序流程图,程序清单,数据结果和分析讨论。

实验5 图像频域增强

一、实验目的

通过本实验使学生掌握使用MATLAB的二维傅里叶变换进行频域增强的方法。

二、实验原理

本实验是基于数字图像处理课程中的图像频域增强理论来设计的。

本实验的准备知识:第四章频域图像增强中的一维傅里叶变换和二维傅里叶变换,频域图像增强的步骤,频域滤波器。根据教材285页到320页的内容,开展本实验。

可能用到的函数:

1、延拓函数 padarray

例:A=[1,2;3,4];

B=padarray(A,[2,3],’post’);

则结果为

B =

1 2 0 0 0

3 4 0 0 0

0 0 0 0 0

0 0 0 0 0

使用该函数实现图像的0延拓。Padarray还有其它用法,请用help查询。

2、低通滤波器生成函数

首先编写dftuv函数,如下

function [U,V]=dftuv(M,N)

%DFTUV Computes meshgrid frequency matrices.

% [U,V]=DFTUV(M,N] computes meshgrid frequency matrices U and V. U and V are useful for computing frequency-domain filter functions that can be used with DFTFILT. U and V are both M-by-N.

% Set up range of variables.

u=0:(M-1);

v=0:(N-1);

% Compute the indices for use in meshgrid.

idx=find(u>M/2);

u(idx)=u(idx)-M;

idy=find(v>N/2);

v(idy)=v(idy)-N;

%Compute the meshgrid arrays.

[V,U]=meshgrid(v,u);

然后编写低通滤波器函数

function [H,D]=lpfilter(type,M,N,D0,n)

% LPFILTER computers frequency domain lowpass filters.

% H=lpfilter(TYPE,M,N,D0,n) creates the transfer function of a lowpass filter, H, of the specified TYPE and size(M-by-N). To view the filter as an image or mesh plot, it should be centered using H=fftshift(H).

% valid values for TYPE, D0, and n are:

% 'ideal' Ideal lowpass filter with cutoff frequency D0. n need not be supplied. D0 must be positive.

% 'btw' Butterworth lowpass filter of ordern, and cutoff D0. The default value for n is 1. D0 must be positive.

% 'gaussian' Gaussian lowpass filter with cutoff (standard deviation)D0. n need not be supplied. D0 must be positive.

%Use function dftuv to set up the meshgrid arrays needed for computing the required distances.

[U,V]=dftuv(M,N); %

D=sqrt(U.^2+V.^2); % Compute the distances D(U,V)

% Begin filter computations.

switch type

case'ideal'

H=double(D<=D0);

case'btw'

if nargin==4

n=1;

end

H=1./(1+(D./D0).^(2*n));

case'gaussian'

H=exp(-(D.^2)./(2*(D0^2)));

otherwise

error('Unknown filter type')

end

通过调用函数lpfilter可生成相应的滤波器掩膜矩阵。

参考该函数可相应的生成高通滤波器函数。

3、频域滤波

F=fft2(f,size(H,1),size(H,2)); % 对延拓的f计算FFT。注意,这里隐含着对f的延拓。

G=real(ifft2(H.*F)); % 滤波

Gf=G(1:size(f,1),1:size(f,2)); %裁剪后的图像

三、实验内容

(一)图像频域增强的步骤

参考教材286页的Figure 4.36,重复该图像中的步骤,并将相应的结果显示出来。

(二)频域低通滤波

产生实验四中的白条图像。设计不同截止频率的理想低通滤波器、Butterworth低通滤波器,对其进行频域增强。观察频域滤波效果,并解释之。

设计不同截止频率的理想低通滤波器、Butterworth低通滤波器,对含高斯噪声的lena 图像进行频域增强。观察频域滤波效果,并解释之。

(三)频域高通滤波

设计不同截止频率的理想高通滤波器、Butterworth高通滤波器,对上述白条图像进行频域增强。观察频域滤波效果,并解释之。

设计不同截止频率的理想高通滤波器、Butterworth高通滤波器,对含高斯噪声的lena 图像进行频域增强。观察频域滤波效果,并解释之。

四、实验方法与步骤

1、顺序完成上述实验内容

2、按照实验内容要求,分析编程,将程序和实验结果整理成word文档,分析结果,编

写实验报告。

五、实验报告要求

1、本实验由学生单人独立完成。

2、每个实验均按统一格式编写实验报告。

实验报告内容包括:实验要求,实验项目,典型程序流程图,程序清单,数据结果和

分析讨论。

实验6 彩色图像变换

一、实验目的

通过本实验使学生掌握使用MATLAB进行彩色图像处理的方法,加深对彩色空间和彩色图像的理解。

二、实验原理

本实验是基于数字图像处理课程中的第六章-彩色图像处理理论来设计的。

本实验的准备知识:第六章彩色图像处理中的彩色空间,彩色图像处理方法。

重点如下:

1、彩色空间及其相互转换:

a)RGB空间

b)CMY空间

c)HSI空间

2、彩色空间中各图像分量的演示和意义,关键命令:

f=imread(‘C:\...\lena_color.tif’, ‘TIF’);

显示: imshow

红色图像分量: f(:,:,1)

绿色图像分量: f(:,:,2)

蓝色图像分量: f(:,:,3)

三、实验内容

(一)彩色RGB空间的各个分量

读取lena_color.tif图像,显示彩色图像,

(1)提取三个图像分量,同屏显示彩色图像及其各个分量图像,说明各个图像

分量的意义。

(2)同屏显示三个图像分量的直方图,并解释之。

(二) RGB-CMY空间的转换

(1)编写程序,实现将lena图像的反色,也就是转换为CMY空间。

(2)提取CMY空间的三个图像分量,同屏显示彩色图像及其各个分量图像,说明各个图像分量的意义。

(3)同屏显示三个图像分量的直方图,并解释之。

(4)可再使用MATLAB下的求补色图像imcomplement函数实现。

(三)彩色变换

读取lena_color.tif图像,

(1)将该RGB图像的亮度降低70%,并同屏显示原图像与亮度降低后图像。

(2)将该RGB图像中的红色分量的亮度降低50%,并同屏显示原图像与变换后彩

色图像。

(3)将该RGB图像中的绿色分量的亮度降低50%,并同屏显示原图像与变换后彩

色图像。

思考:彩色变换时应该注意什么?

四、实验方法与步骤

1、顺序完成上述实验内容

2、按照实验内容要求,分析编程,将程序和实验结果整理成word文档,分析结果,编写实验报告。

五、实验报告要求

1、本实验由学生单人独立完成。

2、每个实验均按统一格式编写实验报告。

实验报告内容包括:实验要求,实验项目,典型程序流程图,程序清单,数据结果和分析讨论。

实验7 彩色图像滤波

一、实验目的

通过本实验使学生掌握使用MATLAB进行彩色图像处理的方法,加深对彩色空间和彩色图像的理解。

二、实验原理

本实验是基于数字图像处理课程中的彩色图像处理理论来设计的。

本实验的准备知识:第六章彩色图像处理中的彩色空间,彩色图像处理方法。

重点如下:

1、RGB图像与HSI图像之间的相互转换

2、彩色图像消噪

添加噪声命令:imnoise

中值滤波技术,均值滤波技术

三、实验内容

(一)HSI空间分量

读取lena_color.tif图像,进行下列操作:

1、编写函数,将其从RGB空间转换到HIS空间,分别显示其H分量、S分量和I分量。

2、编写函数,将图像从HIS空间转换到RGB空间,分别显示R分量,G分量和B分量。

(二)RGB空间的彩色平滑

读取lena_color.tif图像,进行下列操作:

(1)采用7×7均值滤波器对彩色图像的所有分量进行相同平滑,同屏显示原图像和平滑后图像,对结果进行说明;

(2)采用7×7均值滤波器对彩色图像的红分量进行平滑,其它分量不变,同屏显示原图像和平滑后图像,对结果进行说明;

(3)采用直方图均衡方法,对彩色图像的三个分量进行增强,同屏显示原图像和增强后图像,对结果进行说明;

(4)将图像添加上椒盐噪声,A_noised=imnoise(A, ‘salt & pepper’, 0.02),选择合适的滤波器进行滤波,观察滤波效果;

(5)将图像添加上高斯噪声,A_noised=imnoise(A, ‘gauss’, 0.02),选择合

适的滤波器进行滤波,观察滤波效果;

思考:彩色图像的滤波应该注意什么?

四、实验方法与步骤

1、顺序完成上述实验内容

2、按照实验内容要求,分析编程,将程序和实验结果整理成word文档,分析结果,编写实验报告。

五、实验报告要求

1、本实验由学生单人独立完成。

2、每个实验均按统一格式编写实验报告。

实验报告内容包括:实验要求,实验项目,典型程序流程图,程序清单,数据结果和分析讨论。

实验8 图像边缘检测

一、实验目的

通过本实验使学生掌握图像边缘检测的基本方法,加深对图像分割的理解。

二、实验原理

本实验是基于数字图像处理课程中的图像分割理论来设计的。

本实验的准备知识:第三章空域图像增强,第十章图像分割中关于图像锐化和边缘检测的方法。重点如下:

1、图像锐化的意义,其中的关键算子有:

a)Prewitt算子

b)Sobel算子

c)LoG算子

2、图像分割的意义,其中的关键算子:prewitt算子,sobel算子

3、图像边缘检测技术

三、实验内容

(一)图像锐化

读取lena_gray.tif图像,

(1)使用prewitt算子对图像进行锐化,同屏显示原图像和锐化后图像,并解

释结果。

(2)使用sobel算子对图像进行锐化,同屏显示原图像和锐化后图像,并解释

结果。

(3)使用LoG算子对图像进行锐化,同屏显示原图像和锐化后图像,并解释结

果。

(4)对比上述锐化结果,说明三个算子的优缺点。

(二)图像边缘检测

读取house.tif图像,

(1)设计合适的算子,检测图像中的横向边缘,同屏显示原图像和边缘图像,

并解释结果。

(2)设计合适的算子,检测图像中的纵向边缘,同屏显示原图像和边缘图像,

并解释结果。

(3)将上述两幅边缘图像叠加,试解释结果的意义。

(三)图像分割

读取rice.tif图像,

(1)使用prewitt算子对图像进行分割,同屏显示原图像和分割后图像,并解

释结果。

(2)使用sobel算子对图像进行分割,同屏显示原图像和分割后图像,并解释

结果。

四、实验方法与步骤

1、顺序完成上述实验内容

2、按照实验内容要求,分析编程,将程序和实验结果整理成word文档,分析结果,编写实验报告。

五、实验报告要求

1、本实验由学生单人独立完成。

2、每个实验均按统一格式编写实验报告。

实验报告内容包括:实验要求,实验项目,典型程序流程图,程序清单,数据结果和分析讨论。

附录一图像数据文件格式

图像数据文件的格式已有很多种,不同的系统平台和软件常使用不同的图像文件格式。例如Macintosh机普遍使用MacPaint格式;Sun Microsystems支持Sun光栅格式;Photoshop 下使用PSD格式等。

目前常用的图像文件格式有:BMP格式,GIF格式,TIFF格式,JPEG格式等。

1、BMP(bitmap)格式,全称为Microsoft设备独立位图(device independent bitmap)

bmp文件大体上分成四个部分,如图所示。

位图文件头BITMAPFILEHEADER

位图信息头BITMAPINFOHEADER

调色板Palette

实际的位图数据ImageData

第一部分为位图文件头BITMAPFILEHEADER,是一个结构,这个结构的长度是固定的,为14个字节(WORD为无符号16位整数,DWORD为无符号32位整数),其定义和各个域的说明如下:

typedef struct tagBITMAPFILEHEADER {

WORD bfType; //指定文件类型,必须是0x424D,即字符串“BM”,也就是说所有.bmp 文件的头两个字节都是“BM”。

DWORD bfSize; //

WORD bfReserved1; //指定文件大小,包括这14个字节。

WORD bfReserved2; //为保留字,不用考虑

DWORD bfOffBits; //为从文件头到实际的位图数据的偏移字节数,即图1中前三个部分的长度之和。

} BITMAPFILEHEADER;

第二部分为位图信息头BITMAPINFOHEADER,也是一个结构,这个结构的长度是固定的,为40个字节(LONG为32位整数),其定义和各个域的说明如下:

typedef struct tagBITMAPINFOHEADER{

DWORD biSize; //指定这个结构的长度,为40。

LONG biWidth; //指定图象的宽度,单位是象素。

LONG biHeight; //指定图象的高度,单位是象素。

WORD biPlanes; //必须是1,不用考虑。

WORD biBitCount //指定表示颜色时要用到的位数,常用的值为1(黑白二色图), 4(16

色图), 8(256色), 24(真彩色图)(新的.bmp格式支持32位色,这里就不做讨论了)。

DWORD biCompression; //指定位图是否压缩,有效的值为BI_RGB,BI_RLE8,BI_RLE4,BI_BITFIELDS(都是一些Windows定义好的常量)。要说明的是,Windows位图可以采用RLE4,和RLE8的压缩格式,但用的不多。我们今后所讨论的只有第一种不压缩的情况,即biCompression为BI_RGB的情况。

DWORD biSizeImage; //指定实际的位图数据占用的字节数,其实也可以从以下的公式中计算出来:biSizeImage=biWidth’ × biHeight要注意的是:上述公式中的biWidth’必须是4的整倍数(所以不是biWidth,而是biWidth’,表示大于或等于biWidth的,最接近4的整倍数。举个例子,如果biWidth=240,则biWidt h’=240;如果biWidth=241,biWidth’=244)。如果biCompression为BI_RGB,则该项可能为零。

LONG biXPelsPerMeter; //指定目标设备的水平分辨率,单位是每米的象素个数。

LONG biYPelsPerMeter; //指定目标设备的垂直分辨率,单位同上。

DWORD biClrUsed; //指定本图象实际用到的颜色数,如果该值为零,则用到的颜色数为2biBitCount。

DWORD biClrImportant; //指定本图象中重要的颜色数,如果该值为零,则认为所有的颜色都是重要的。

} BITMAPINFOHEADER;

第三部分为调色板Palette,当然,这里是对那些需要调色板的位图文件而言的。有些位图,如真彩色图,前面已经讲过,是不需要调色板的,BITMAPINFOHEADER后直接是位图数据。

调色板实际上是一个数组,共有biClrUsed个元素(如果该值为零,则有2biBitCount 个元素)。数组中每个元素的类型是一个RGBQUAD结构,占4个字节,其定义如下:typedef struct tagRGBQUAD {

BYTE rgbBlue; //该颜色的蓝色分量

BYTE rgbGreen; //该颜色的绿色分量

BYTE rgbRed; //该颜色的红色分量

BYTE rgbReserved; //保留值

} RGBQUAD;

第四部分就是实际的图象数据了。对于用到调色板的位图,图象数据就是该象素颜在调色板中的索引值。对于真彩色图,图象数据就是实际的R、G、B值。下面针对2色、16色、256色位图和真彩色位图分别介绍。

对于2色位图,用1位就可以表示该象素的颜色(一般0表示黑,1表示白),所以一个字节可以表示8个象素。

对于16色位图,用4位可以表示一个象素的颜色,所以一个字节可以表示2个象素。

对于256色位图,一个字节刚好可以表示1个象素。

对于真彩色图,三个字节才能表示1个象素。

要注意两点:

(1)每一行的字节数必须是4的整倍数,如果不是,则需要补齐。

(2)一般来说,.bMP文件的数据从下到上,从左到右的。也就是说,从文件中最先读到的是图象最下面一行的左边第一个象素,然后是左边第二个象素……接下来是倒数第二行左边第一个象素,左边第二个象素……依次类推,最后得到的是最上面一行的最右一个象素。

一个位图文件只能存放一幅图像。

2、GIF(graphics interchange formate)格式

一种公用的图像文件格式标准,是8位文件格式(一个像素一个字节),最多256色。其图像数据均为压缩过的。一般包括7个数据单元,分别为文件头,通用调色板,图像数据区,以及4个补充区。

一个GIF文件可以存放多幅图像(有利于实现动画)。

文件头中包含适用于所有图像的全局数据和分属于每幅图像的局部数据。

该格式文件扩展名为.gif。

3、TIFF(tagged image formate file)格式

一种独立于操作系统和文件系统的格式(在Windows环境、Macintosh机、Sun Microsystems环境下都可用),便于在软件之间进行图像数据交换。包括:文件头(数据存放顺序、文件目录的偏移信息等)、文件目录(给出文件目录项的个数、图像数据区的地址等)和文件目录项(图像数据区)

该格式支持任意大小的图像。文件可分4类:二值图像、灰度图像、调色板彩色图像、全彩色图像。可存放多幅图像。

该格式文件扩展名为.tif。

4、JPEG(joint picture expert group)格式

JPEG是对静止灰度或彩色图像的一种压缩标准,可节省空间,目前数码相机中大部分为该格式。该格式文件通常包含单幅图像。图像可以是灰度的(其中的数据为单个分量);也可以是彩色的,其中的数据为Y,Cb,Cr分量)。

该格式文件扩展名为.jpg。

附录二实验报告格式

实验** ********(题目)

班级姓名学号

一、实验目的

通过本实验使学生掌握图像边缘检测的基本方法,加深对图像分割的理解。

二、实验内容

(一)内容一

1、内容1要求,程序,结果和分析。

2、内容2要求,程序,结果和分析。

3、逐次完成所有内容

(二)内容二

。。。。。。

三、思考题回答和实验中发现的问题

回答要求的思考题,并列出实验中发现的问题。

以及对本次实验的感受。

注:要求每次实验提交实验报告,按照实验序号依次编号存成文件上交。例如电子101班李某的实验一的报告的文件名应为“电子101+李某+学号+实验1.doc”。

数字图像处理实验1

实验一 实验内容和步骤 练习图像的读取、显示和保存图像数据,步骤如下: (1)使用命令figure(1)开辟一个显示窗口 (2)读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内显示、二值图像和灰度图像,注上文字标题。 (3)保存转换后的灰度图像和二值图像 (4)在同一个窗口显示转换后的灰度图像的直方图 I=imread('BaboonRGB.bmp'); figure,imshow(I); I_gray=rgb2gray(I); figure,imshow(I_gray); I_2bw=Im2bw(I_gray); figure,imshow(I_2bw); subplot(1,3,1),imshow(I),title('RGB图像'); subplot(1,3,2),imshow(I_gray),title('灰度图像'); subplot(1,3,3),imshow(I_2bw),title('二值图像'); imwrite(I_gray,'Baboongray.png'); imwrite(I_2bw,'Baboon2bw.tif'); figure;imhist(I_gray);

RGB 图 像灰度图 像二值图 像 050100150200250 500 1000 1500 2000 2500 3000

(5)将原RGB 图像的R 、G 、B 三个分量图像显示在figure(2)中,观察对比它们的特点,体会不同颜色所对应的R 、G 、B 分量的不同之处。 [A_RGB,MAP]=imread('BaboonRGB.bmp'); subplot(2,2,1),imshow(A_RGB),title('RGB'); subplot(2,2,2),imshow(A_RGB(:,:,1)),title('R'); subplot(2,2,3),imshow(A_RGB(:,:,2)),title('G'); subplot(2,2,4),imshow(A_RGB(:,:,3)),title('B'); (6)将图像放大1.5倍,插值方法使用三种不同方法,在figure(3)中显示放大后的图像,比较不同插值方法的结果有什么不同。将图像放大到其它倍数,重复实验;A=imread('BaboonRGB.bmp'); figure(3),imshow(A),title('原图像'); B=imresize(A,1.5,'nearest'); figure(4),imshow(B),title('最邻近法') C=imresize(A,1.5,'bilinear'); ; figure(5),imshow(C),title('双线性插值'); D=imresize(A,1.5,'bicubic'); figure(6),imshow(D),title('双三次插值 '); RGB R G B

武汉科技大学 数字图像处理实验报告

二○一四~二○一五学年第一学期电子信息工程系 实验报告书 班级:电子信息工程(DB)1102班姓名 学号: 课程名称:数字图像处理 二○一四年十一月一日

实验一图像直方图处理及灰度变换(2学时) 实验目的: 1. 掌握读、写、显示图像的基本方法。 2. 掌握图像直方图的概念、计算方法以及直方图归一化、均衡化方法。 3. 掌握图像灰度变换的基本方法,理解灰度变换对图像外观的改善效果。 实验内容: 1. 读入一幅图像,判断其是否为灰度图像,如果不是灰度图像,将其转化为灰度图像。 2. 完成灰度图像的直方图计算、直方图归一化、直方图均衡化等操作。 3. 完成灰度图像的灰度变换操作,如线性变换、伽马变换、阈值变换(二值化)等,分别使用不同参数观察灰度变换效果(对灰度直方图的影响)。 实验步骤: 1. 将图片转换为灰度图片,进行直方图均衡,并统计图像的直方图: I1=imread('pic.jpg'); %读取图像 I2=rgb2gray(I1); %将彩色图变成灰度图 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('灰度图'); subplot(3,2,4); imhist(I2); %统计直方图 title('统计直方图'); subplot(3,2,5); J=histeq(I2); %直方图均衡 imshow(J); title('直方图均衡'); subplot(3,2,6); imhist(J); title('统计直方图');

原 图 灰度图 01000 2000 3000统计直方图 100200直方图均衡 0统计直方图 100200 仿真分析: 将灰度图直方图均衡后,从图形上反映出细节更加丰富,图像动态范围增大,深色的地方颜色更深,浅色的地方颜色更前,对比更鲜明。从直方图上反应,暗部到亮部像素分布更加均匀。 2. 将图片进行阈值变换和灰度调整,并统计图像的直方图: I1=imread('rice.png'); I2=im2bw(I1,0.5); %选取阈值为0.5 I3=imadjust(I1,[0.3 0.9],[]); %设置灰度为0.3-0.9 subplot(3,2,1); imshow(I1); title('原图'); subplot(3,2,3); imshow(I2); title('阈值变换'); subplot(3,2,5); imshow(I3); title('灰度调整'); subplot(3,2,2); imhist(I1); title('统计直方图'); subplot(3,2,4);

数字图像处理实验指导书-河北工业大学2014实验一

数字图像处理 实验指导书 河北工业大学 计算机科学与软件学院

实验一 MATLAB数字图像处理初步 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像类型转换。 二、实验原理及知识点 1、数字图像的表示和类别 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。 图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化称为采样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。

图1 图像的采样和量化 根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类: 亮度图像(Intensity images) 二值图像(Binary images) 索引图像(Indexed images) RGB图像(RGB images) (1) 亮度图像 一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。若图像是double类,则像素取值就是浮点数。规定双精度型归一化亮度图像的取值范围是[0,1] (2) 二值图像 一幅二值图像是一个取值只有0和1的逻辑数组。 (3) 索引图像 索引颜色通常也称为映射颜色,在这种模式下,颜色都是预先定义的,并且可供选用的一组颜色也很有限,索引颜色的图像最多只能显示256种颜色。 一幅索引颜色图像在图像文件里定义,当打开该文件时,构成该图像具体颜色的索引值就被读入程序里,然后根据索引值找到最终的颜色。(4) RGB图像 一幅RGB图像就是彩色像素的一个M×N×3数组,其中每一个彩色相

数字图像处理实验报告

数字图像处理实验报告 实验一数字图像基本操作及灰度调整 一、实验目的 1)掌握读、写图像的基本方法。 2)掌握MATLAB语言中图像数据与信息的读取方法。 3)理解图像灰度变换处理在图像增强的作用。 4)掌握绘制灰度直方图的方法,理解灰度直方图的灰度变换及均衡化的方 法。 二、实验内容与要求 1.熟悉MATLAB语言中对图像数据读取,显示等基本函数 特别需要熟悉下列命令:熟悉imread()函数、imwrite()函数、size()函数、Subplot()函数、Figure()函数。 1)将MATLAB目录下work文件夹中的forest.tif图像文件读出.用到imread, imfinfo 等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。将这个图像显示出来(用imshow)。尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。 2)将MATLAB目录下work文件夹中的b747.jpg图像文件读出,用rgb2gray() 将其 转化为灰度图像,记为变量B。 2.图像灰度变换处理在图像增强的作用 读入不同情况的图像,请自己编程和调用Matlab函数用常用灰度变换函数对输入图像进行灰度变换,比较相应的处理效果。 3.绘制图像灰度直方图的方法,对图像进行均衡化处理 请自己编程和调用Matlab函数完成如下实验。 1)显示B的图像及灰度直方图,可以发现其灰度值集中在一段区域,用 imadjust函 数将它的灰度值调整到[0,1]之间,并观察调整后的图像与原图像的差别,调整后的灰

度直方图与原灰度直方图的区别。 2) 对B 进行直方图均衡化处理,试比较与源图的异同。 3) 对B 进行如图所示的分段线形变换处理,试比较与直方图均衡化处理的异同。 图1.1 分段线性变换函数 三、实验原理与算法分析 1. 灰度变换 灰度变换是图像增强的一种重要手段,它常用于改变图象的灰度范围及分布,是图象数字化及图象显示的重要工具。 1) 图像反转 灰度级范围为[0, L-1]的图像反转可由下式获得 r L s --=1 2) 对数运算:有时原图的动态范围太大,超出某些显示设备的允许动态范围, 如直接使用原图,则一部分细节可能丢失。解决的方法是对原图进行灰度压缩,如对数变换: s = c log(1 + r ),c 为常数,r ≥ 0 3) 幂次变换: 0,0,≥≥=γγc cr s 4) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

数字图像处理实验(全完整答案)

数字图像处理实验(全 完整答案)

实验一常用 MATLAB图像处理命令 一、实验目的 1 、熟悉并掌握MA TLAB 工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 二、实验环境 MATLAB 6.5 以上版本、WIN XP或W IN2000计算机 三、常用函数 读写图像文件 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%

数字图像处理实验报告完整版

数字图像处理 实验一 MATLAB数字图像处理初步 一、显示图像 1.利用imread( )函数读取一幅图像,假设其名为lily.tif,存入一个数组中; 2.利用whos 命令提取该读入图像flower.tif的基本信息; 3.利用imshow()函数来显示这幅图像; 实验结果如下图: 源代码: >>I=imread('lily.tif') >> whos I >> imshow(I) 二、压缩图像 4.利用imfinfo函数来获取图像文件的压缩,颜色等等其他的详细信息; 5.利用imwrite()函数来压缩这幅图象,将其保存为一幅压缩了像素的jpg文件,设为lily.jpg;语法:imwrite(原图像,新图像,‘quality’,q), q取0-100。 6.同样利用imwrite()函数将最初读入的tif图象另存为一幅bmp图像,设为flily.bmp。7.用imread()读入图像Sunset.jpg和Winter.jpg; 8.用imfinfo()获取图像Sunset.jpg和Winter.jpg的大小; 9.用figure,imshow()分别将Sunset.jpg和Winter.jpg显示出来,观察两幅图像的质量。 其中9的实验结果如下图:

源代码: 4~6(接上面两个) >>I=imread('lily.tif') >> imfinfo 'lily.tif'; >> imwrite(I,'lily.jpg','quality',20); >> imwrite(I,'lily.bmp'); 7~9 >>I=imread('Sunset.jpg'); >>J=imread('Winter.jpg') >>imfinfo 'Sunset.jpg' >> imfinfo 'Winter.jpg' >>figure(1),imshow('Sunset.jpg') >>figure(2),imshow('Winter.jpg') 三、二值化图像 10.用im2bw将一幅灰度图像转化为二值图像,并且用imshow显示出来观察图像的特征。实验结果如下图: 源代码: >> I=imread('lily.tif') >>gg=im2bw(I,0.4); F>>igure, imshow(gg)

数字图像处理实验指导书

实验一 Matlab图像处理工具箱的初步练习 一、实验目的和任务 1、初步了解与掌握MA TLAB语言的基本用法; 2、掌握MA TLAB语言中图象数据与信息的读取方法; 3、掌握在MA TLAB语言中图像类型的转换。 二、实验仪器、设备及材料 1、计算机 2、MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) 3、实验所需要的图片 三、实验原理 将数字图像的RGB表示转换为YUV表示; Y=0.30R+0.59G+0.11B U=0.70R-0.59G-0.11B V=-0.30R-0.59G+0.89B 四、实验步骤 1、阅读资料并熟悉MatLab的基本操作 2、读取MATLAB中的图象数据 3、显示MATLAB中的图象文件。用MATLAB在自建的文件夹中建立m文件,在这个文件的程序中,将MA TLAB目录下work文件夹中的tree.tif 图象文件读出,用到imread,imfinfo等命令,观察一下图象数据,了解一下数字图象在MA TLAB中的处理就是处理一个矩阵的本质。 4、将3中的图象显示出来(用imshow)。 5、对MA TLAB目录下work文件夹中的flowers.tif进行真彩色图像、索引色图像、灰度图像、二值图像之间的相互变换,并显示。 6、进行真彩色图像RGB(lenacolor.jpg)、YIQ图像、HSV图像、YcbCr图像的相互转换,并显示。 五、实验报告要求 1、描述实验的基本步骤; 2、用图片给出步骤4、5、6中取得的实验结果; 六、实验所需图片

lenacolor.jpg 七、实验注意事项 1、学生应提前预习 2、请大家在E盘建一个目录(matlab),在每次启动时都要将这个目录加入到MATLAB的搜索路径中,添加的方法为File----Set Path----Tool---Add Path 八、思考题 1、图像之间转换的基础是什么,为什么可以实现相互的转换 九、附录 MATLAB简介 (1) MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定了MA TLAB在处理数字图像上的独特优势。理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。而MATLAB的长处就是处理矩阵运算,因此用MA TLAB处理数字图像非常的方便。MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Processing Toolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。 1、MATLAB中图象数据的读取 A、imread imread函数用于读入各种图象文件,其一般的用法为 [X,MAP]=imread(‘filename’,‘fmt’) 其中,X,MAP分别为读出的图象数据和颜色表数据,fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。 例:[X,MAP]=imread(’flowers.tif’,’tif’);

数字图像处理实验 实验二

实验二MATLAB图像运算一、实验目的 1.了解图像的算术运算在数字图像处理中的初步应用。 2.体会图像算术运算处理的过程和处理前后图像的变化。 二、实验步骤 1.图像的加法运算-imadd 对于两个图像f x,y和 (x,y)的均值有: g x,y=1 f x,y+ 1 (x,y) 推广这个公式为: g x,y=αf x,y+β (x,y) 其中,α+β=1。这样就可以得到各种图像合成的效果,也可以用于两张图像的衔接。说明:两个示例图像保存在默认路径下,文件名分别为'rice.png'和'cameraman.tif',要求实现下图所示结果。 代码: I1 = imread('rice.png'); I2 = imread('cameraman.tif'); I3 = imadd(I1, I2,'uint8'); I4 = imadd(I1, I2,'uint16'); subplot(2, 2, 1), imshow(I1), title('?-ê?í???1'); subplot(2, 2, 2), imshow(I2), title('?-ê?í???2'); subplot(2, 2, 3), imshow(I3), title('8??í?????ê?'); subplot(2, 2, 4), imshow(I4), title('16??í?????ê?'); 结果截图:

2.图像的减法运算-imsubtract 说明: 背景图像可通过膨胀算法得到background = imopen(I,strel('disk',15));,要求实现下图所示结果。 示例代码如下: I1 = imread('rice.png'); background = imerode(I1, strel('disk', 15)); rice2 = imsubtract(I1, background); subplot(2, 2, 1), imshow(I1), title('?-ê?í???'); subplot(2, 2, 2), imshow(background), title('±3?°í???'); subplot(2, 2, 3), imshow(rice2), title('′|àíoóμ?í???'); 结果截图: 3.图像的乘法运算-immultiply

数字图像处理实验报告

数字图像处理实验 报告 学生姓名:学号: 专业年级: 09级电子信息工程二班

实验一常用MATLAB图像处理命令 一、实验内容 1、读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 实验结果如右图: 代码如下: Subplot (1,3,1) i=imread('E:\数字图像处理\2.jpg') imshow(i) title('RGB') Subplot (1,3,2) j=rgb2gray(i) imshow(j) title('灰度') Subplot (1,3,3) k=im2bw(j,0.5) imshow(k) title('二值') 2、对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (3,2,1) i=imread('E:\数字图像处理 \16.jpg') x=imresize(i,[250,320]) imshow(x) title('原图x') Subplot (3,2,2) j=imread(''E:\数字图像处理 \17.jpg') y=imresize(j,[250,320]) imshow(y) title('原图y') Subplot (3,2,3) z=imadd(x,y) imshow(z)

title('相加结果');Subplot (3,2,4);z=imsubtract(x,y);imshow(z);title('相减结果') Subplot (3,2,5);z=immultiply(x,y);imshow(z);title('相乘结果') Subplot (3,2,6);z=imdivide(x,y);imshow(z);title('相除结果') 3、对一幅图像进行灰度变化,实现图像变亮、变暗和负片效果,在同一个窗口内分成四个子窗口来分别显示,注上文字标题。 实验结果如右图: 代码如下: Subplot (2,2,1) i=imread('E:\数字图像处理 \23.jpg') imshow(i) title('原图') Subplot (2,2,2) J = imadjust(i,[],[],3); imshow(J) title('变暗') Subplot (2,2,3) J = imadjust(i,[],[],0.4) imshow(J) title('变亮') Subplot (2,2,4) J=255-i Imshow(J) title('变负') 二、实验总结 分析图像的代数运算结果,分别陈述图像的加、减、乘、除运算可能的应用领域。 解答:图像减运算与图像加运算的原理和用法类似,同样要求两幅图像X、Y的大小类型相同,但是图像减运算imsubtract()有可能导致结果中出现负数,此时系统将负数统一置为零,即为黑色。 乘运算实际上是对两幅原始图像X、Y对应的像素点进行点乘(X.*Y),将结果输出到矩阵Z中,若乘以一个常数,将改变图像的亮度:若常数值大于1,则乘运算后的图像将会变亮;叵常数值小于是,则图像将会会暗。可用来改变图像的灰度级,实现灰度级变换,也可以用来遮住图像的某些部分,其典型应用是用于获得掩膜图像。 除运算操作与乘运算操作互为逆运算,就是对两幅图像的对应像素点进行点(X./Y), imdivide()同样可以通过除以一个常数来改变原始图像的亮度,可用来改变图像的灰度级,其典型运用是比值图像处理。 加法运算的一个重要应用是对同一场景的多幅图像求平均值 减法运算常用于检测变化及运动的物体,图像相减运算又称为图像差分运算,差分运算还可以用于消除图像背景,用于混合图像的分离。

数字图像处理——彩色图像实验报告

6.3实验步骤 (1)对彩色图像的表达和显示 * * * * * * * * * * * *显示彩色立方体* * * * * * * * * * * * * rgbcube(0,0,10); %从正面观察彩色立方体 rgbcube(10,0,10); %从侧面观察彩色立方 rgbcube(10,10,10); %从对角线观察彩色立方体 %* * * * * * * * * *索引图像的显示和转换* * * * * * * * * * f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %rgb图像转换成8色索引图像,不采用抖动方式 [X1,map1]=rgb2ind(f,8,'nodither'); figure,imshow(X1,map1); %采用抖动方式转换到8色索引图像 [X2,map2]=rgb2ind(f,8,'dither'); figure,imshow(X2,map2); %显示效果要好一些 g=rgb2gray(f); %f转换为灰度图像 g1=dither(g);%将灰色图像经过抖动处理,转换打二值图像figure,imshow(g);%显示灰度图像 figure,imshow(g1);%显示抖动处理后的二值图像 程序运行结果:

彩色立方体原图 不采用抖动方式转换到8色索引图像采用抖动方式转换到8色索引图像 灰度图像抖动处理后的二值图像

(2)彩色空间转换 f=imread('D:\Picture\Fig0604(a)(iris).tif'); figure,imshow(f);%f是RGB真彩图像 %转换到NTSC彩色空间 ntsc_image=rgb2ntsc(f); figure,imshow(ntsc_image(:,:,1));%显示亮度信息figure,imshow(ntsc_image(:,:,2));%显示色差信息figure,imshow(ntsc_image(:,:,3));%显示色差信息 %转换到HIS彩色空间 hsi_image=rgb2hsi(f); figure,imshow(hsi_image(:,:,1));%显示色度信息figure,imshow(hsi_image(:,:,2)); %显示饱和度信息figure,imshow(hsi_image(:,:,3));%显示亮度信息 程序运行结果: 原图 转换到NTSC彩色空间

数字图像处理实验指导书

实验一数字图像处理编程基础 一、实验目的 1. 了解MATLAB图像处理工具箱; 2. 掌握MATLAB的基本应用方法; 3. 掌握MATLAB图像存储/图像数据类型/图像类型; 4. 掌握图像文件的读/写/信息查询; 5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法; 6. 编程实现图像类型间的转换。 二、实验原理 略。 三、实验内容 1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。 2. 运行图像处理程序,并保存处理结果图像。 四、分析思考 归纳总结Matlab各个基本指令。 Dither 采用“抖动”方法从RGB 图像创建索引图像 grayslice 从灰度图像通过阈值处理创建索引图像 gray2ind 从灰度图像创建索引图像 ind2gray 从索引图像创建灰度图像 rgb2ind 从RGB 图像创建索引图像 ind2rgb 从索引图像创建RGB 图像 rgb2gray 从RGB 图像创建灰度图像

实验二 图像几何变换实验 一、实验目的 1.学习几种常见的图像几何变换,并通过实验体会几何变换的效果; 2.掌握图像平移、剪切、缩放、旋转、镜像等几何变换的算法原理及编程实现; 3.掌握matlab 编程环境中基本的图像处理函数。 二、实验原理 1. 初始坐标为(,)x y 的点经过平移00(,)x y ,坐标变为(',')x y ,两点之间的关系为:00 ''x x x y y y =+??=+?,以矩阵形式表示为: 00'10'01100 11x x x y y y ????????????=?????????????????? 2. 图像的镜像变换是以图象垂直中轴线或水平中轴线交换图像的变换,分为垂直镜像变换和水平镜像变换,两者的矩阵形式分别为: '100'01010011x x y y -????????????=?????????????????? '100'01010011x x y y ????????????=-?????????????????? 3. 图像缩小和放大变换矩阵相同: '00'0010011X y x S x y S y ????????????=?????????????????? 当1x S ≤,1y S ≤时,图像缩小;当1x S ≥,1y S ≥时,图像放大。 4. 图像旋转定义为以图像中某一点为原点以逆时针或顺时针方

数字图像处理实验

《数字图像处理》 实验报告 学院:信息工程学院 专业:电子信息工程 学号: 姓名: 2015年6月18日

目录 实验一图像的读取、存储和显示 (2) 实验二图像直方图分析 (6) 实验三图像的滤波及增强 (15) 实验四噪声图像的复原 (19) 实验五图像的分割与边缘提取 (23) 附录1MATLAB简介 (27)

实验一图像的读取、存储和显示 一、实验目的与要求 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) PC计算机 (2) MatLab软件/语言包括图像处理工具箱(Image Processing Toolbox) (3) 实验所需要的图片 四、实验内容及步骤 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 的大小;

数字图像处理实验 2017

实验一 Matlab图像基本操作 一、实验目的 熟悉利用Matlab进行图像处理的基本操作,了解图像数据的存储形式及进行图像处理编程的步骤方法。 二、实验内容 1、图像读写与显示 重点函数:imread, imwrite, imshow 2、彩色图像灰度化 计算公式:Y = R*0.299 + G*0.587 + B*0.114 3、图像马赛克 局部平均,改变窗口大小比较处理结果,如取2×2、4×4或更大尺寸的窗口 4、图像平移 分别完成图像水平方向、竖直方向和两个方向的平移 三、实验要求 1、编写代码,完成各项实验内容 2、总结实验中遇到问题及解决方案,书写实验报告 实验二图像点运算 一、实验目的 理解图像灰度变换和直方图的概念,掌握灰度变换和直方图均衡化的原理及实现方法。 二、实验内容 1、线性灰度变换 2、非线性变换 =,修改指数γ观察图像效果,总结指数项γ合理取值的一般规律 s crγ 3、直方图 绘制直方图,观察图像效果与直方图的关系 4、直方图均衡化 利用直方图均衡化确定灰度变换关系,画出变换曲线及图像处理前后的直方图 三、实验要求 1、编写代码,完成各项实验内容 2、总结实验中遇到问题及解决方案,书写实验报告

实验三邻域运算 一、实验目的 1.巩固对图像增强的认识,明确图像空域处理的类型 2.理解图像平滑与图像锐化的概念 3.掌握图像模板卷积运算的实现方法 4.锻炼编程开发图像处理算法的能力 二、实验准备 1.了解图像处理点运算和邻域运算的区别 2.学习利用模板卷积的方法进行图像邻域运算 3.复习均值滤波和中值滤波的原理 4.列出常用的模板形式,思考中值滤波要用到的简单排序方法 5.分析对比图像平滑和图像锐化模板的差异 三、实验内容与步骤 1.列出常用的卷积模板 2.基于3×3的模板,编写均值滤波的处理程序,处理含有加性高斯噪声和椒盐噪声的图像,观察处理结果 3.编写中值滤波程序,处理相同的图像与均值滤波进行比较;改变模板尺寸观察处理结果 4.编程实现利用一阶微分算子和二阶拉普拉斯算子进行图像锐化的程序 5.对比不同的邻域运算结果,体会图像锐化与图像平滑的区别 四、实验报告与思考题 1.总结实验内容及步骤方法完成实验报告,报告中要求有关键代码的注释说明及程序运行和图像处理结果 2.实验报告中回答以下问题 (1)均值滤波和中值滤波分别适用于处理哪类图像? (2)图像平滑和图像锐化所采用的模板有什么不同? (3)邻域运算的模板尺寸对处理结果有什么影响?

北航数字图象处理实验报告

数字图像处理实验报告 实验二图像变换实验 1.实验目的 学会对图像进行傅立叶等变换,在频谱上对图像进行分析,增进对图像频域上的感性认识,并用图像变换进行压缩。 2.实验内容 对Lena或cameraman图像进行傅立叶、离散余弦、哈达玛变换。在频域,对比他们的变换后系数矩阵的频谱情况,进一步,通过逆变换观察不同变换下的图像重建质量情况。 3. 实验要求 实验采用获取的图像,为灰度图像,该图像每象素由8比特表示。具体要求如下: (1)输入图像采用实验1所获取的图像(Lena、Cameraman); (2)对图像进行傅立叶变换、获得变换后的系数矩阵; (3)将傅立叶变换后系数矩阵的频谱用图像输出,观察频谱; (4)通过设定门限,将系数矩阵中95%的(小值)系数置为0,对图像进行反变换,获得逆变换后图像; (5)观察逆变换后图像质量,并比较原始图像与逆变后的峰值信噪比(PSNR)。 (6)对输入图像进行离散余弦、哈达玛变换,重复步骤1-5; (7)比较三种变换的频谱情况、以及逆变换后图像的质量(PSNR)。 4. 实验结果 1. DFT的源程序及结果 J=imread('10021033.bmp'); P=fft2(J); for i=0:size(P,1)-1 for j=1:size(P,2) G(i*size(P,2)+j)=P(i+1,j); end end Q=sort(G); for i=1:size(Q,2) if (i=size(Q,2)*0.95) t=Q(i); end end G(abs(G)

用matlab数字图像处理四个实验

数字图像处理 实验指导书

目录 实验一MATLAB数字图像处理初步实验二图像的代数运算 实验三图像增强-空间滤波 实验四图像分割 3

实验一 MATLAB数字图像处理初步 一、实验目的与要求 1.熟悉及掌握在MATLAB中能够处理哪些格式图像。 2.熟练掌握在MATLAB中如何读取图像。 3.掌握如何利用MATLAB来获取图像的大小、颜色、高度、宽度等等相关信息。 4.掌握如何在MATLAB中按照指定要求存储一幅图像的方法。 5.图像间如何转化。 二、实验原理及知识点 1、数字图像的表示和类别 一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在RGB彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。 图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。 作为MATLAB基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。 图1 图像的采样和量化 根据图像数据矩阵解释方法的不同,MA TLAB把其处理为4类: ?亮度图像(Intensity images)

数字图像处理实验一

数字图像处理—实验一 一.实验内容: 图像灰度变换 二.实验目的: 学会用Matlab软件对图像灰度进行变换;感受各种不同的灰度变换方法对最终图像效果的影响。 三.实验步骤: 1.获取实验用图像:rice.jpg. 使用imread函数将图像读入Matlab。 程序: clc;clear; figure; subplot(4,4,1); i = imread('rice.png'); i = im2double(i); imshow(i);title('1'); 2.产生灰度变换函数T1,使得: 0.3r r < 0.35 s = 0.105 + 2.6333(r – 0.35) 0.35 ≤r ≤0.65

1 + 0.3(r – 1) r > 0.65 用T1对原图像rice.jpg进行处理,使用imwrite函数保存处理后的新图像。程序: subplot(4,4,2); r=[0:0.001:1]; s=[r<0.35].*r*0.3+[r<=0.65].*[r>=0.35].*(0.105+2.6333*(r-0.35))+[r>0.65].*(1 +0.3*(r-1)); plot(r,s);title('2p'); subplot(4,4,3); T1=[i<0.35].*i*0.3+[i<=0.65].*[i>=0.35].*(0.105+2.6333*(i-0.35))+[i>0.65].*( 1+0.3*(i-1)); imshow(T1);title('2i'); imwrite(T1,'rice_T1.jpg','jpg');

3.产生灰度变换函数T2,使得: 用T2对原图像rice.jpg进行处理,使用imwrite保存处理后的新图像。 %3 subplot(4,4,4); r = [0:0.001:1];

数字图像处理实验教学大纲

《数字图像处理》课程实验教学大纲 电子信息工程教研室编 信息与电子工程学院 2013 年 8 月

课程名称:数字图像处理课程编号:056123 英文名称: Digital Image Processing 课程负责人:马加庆 课程性质:非独立设课 课程属性:专业 应开实验学期:第6学期 学时学分:课程总学时---48 实验学时---16 课程总学分---3 实验学分---0 实验者类别:本科生 适用专业:电子信息工程、电子信息科学与技术 先修课程:线性代数,信号与系统,数字信号处理,计算机仿真及应用 一、课程简介 数字图像处理是研究数字图像处理的基本理论、方法及其在智能化检测中应用的学科,本课程侧重于数字图像的基本处理理论和方法,并对图像分析的基本理论和实际应用进行系统介绍。目的是使学生系统掌握数字图像处理的基本概念、基本原理、实现方法和实用技术,了解数字图像处理基本应用和当前国内外的发展方向。要求学生通过该课程学习,具备解决智能化检测与控制中应用问题的初步能力,为在计算机视觉、模式识别等领域从事研究与开发打下扎实的理论基础。 二、课程实验教学的目的、任务与要求 通过实验使学生加深对课堂上所学专业知识的认识,通过理论与实践相结合提高学生的动手能力。要求学生利用所学知识完成对图像的锐化、模糊、加噪声、读取、变换等处理。 三、实验方式与基本要求 实验方式:学生一人一机,独立实验,注意记录实验数据与结果分析。 基本要求:实验前,学生要认真预习实验任务,了解实验目的和实验内容;实验时,要认真上机,做好观察分析和记录;实验后,按要求编写实验报告。 四、实验项目设置 注:实验类型:1.演示/2.验证/3.综合/4.设计研究/5.其他;实验类别:1.基础/2.专业基础/3.专业/4.其它;实验要求:1.必修/2.选修/3.其它

数字图像处理实验报告

目录 实验一:数字图像的基本处理操作 (4) :实验目的 (4) :实验任务和要求 (4) :实验步骤和结果 (5) :结果分析 (8) 实验二:图像的灰度变换和直方图变换 (9) :实验目的 (9) :实验任务和要求 (9) :实验步骤和结果 (9) :结果分析 (13) 实验三:图像的平滑处理 (14) :实验目的 (14) :实验任务和要求 (14) :实验步骤和结果 (14) :结果分析 (18) 实验四:图像的锐化处理 (19) :实验目的 (19) :实验任务和要求 (19) :实验步骤和结果 (19) :结果分析 (21)

实验一:数字图像的基本处理操作 :实验目的 1、熟悉并掌握MATLAB、PHOTOSHOP等工具的使用; 2、实现图像的读取、显示、代数运算和简单变换。 3、熟悉及掌握图像的傅里叶变换原理及性质,实现图像的傅里叶变换。:实验任务和要求 1.读入一幅RGB图像,变换为灰度图像和二值图像,并在同一个窗口内分 成三个子窗口来分别显示RGB图像和灰度图像,注上文字标题。 2.对两幅不同图像执行加、减、乘、除操作,在同一个窗口内分成五个子窗口来分 别显示,注上文字标题。 3.对一幅图像进行平移,显示原始图像与处理后图像,分别对其进行傅里叶变换, 显示变换后结果,分析原图的傅里叶谱与平移后傅里叶频谱的对应关系。 4.对一幅图像进行旋转,显示原始图像与处理后图像,分别对其进行傅里 叶变换,显示变换后结果,分析原图的傅里叶谱与旋转后傅里叶频谱的 对应关系。 :实验步骤和结果 1.对实验任务1的实现代码如下: a=imread('d:\'); i=rgb2gray(a); I=im2bw(a,; subplot(1,3,1);imshow(a);title('原图像'); subplot(1,3,2);imshow(i);title('灰度图像'); subplot(1,3,3);imshow(I);title('二值图像'); subplot(1,3,1);imshow(a);title('原图像'); 结果如图所示:

相关文档
最新文档