数字图像处理上机实验

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

数字图像处理上机作业

朱正洲 2018102018027

1. 对给定的两种128 128、256级灰度的数字图像<图像磁盘文件名分别为Fing_128.img<指纹图)和Cell_128.img<显微医学图像)进行如下处理:b5E2RGbCAP

<1)对原图像进行直方图均衡化处理,同屏显示处理前后图像及其直方图,比较异同,并回答为什么数字图像均衡化后其直方图并非完全均匀分布。p1EanqFDPw

异同:由于原图像中目标物的灰度主要集中于低亮度部分,而且象素总数比较多,经过直方图均衡后,目标物的所占的灰度等级得到扩展,对比度加强,使整个图像得到增强。DXDiTa9E3d

字图像均衡化后其直方图并非完全均匀分布的原因:由于原图像中

目标物的灰度主要集中于低亮度部分,而且象素总数比较少,而所

占的灰度等级比较多,因此图像的对比度比较好,亮度比较大,整

体图像清晰。经过直方图均衡后,目标物的所占的灰度等级被压缩,对比度减弱,反而使目标物变的难以辨认。RTCrpUDGiT

字图像均衡化后,其直方图并非完全均匀分布,这是因为图像的象

素个数和灰度等级均为离散值;而且均衡化使灰度级并归,因此,

均衡化后,其直方图并非完全均匀分布。5PCzVD7HxA

代码:

igure(1>。

id=fopen('D:\img\cell_128.img','r'>。 %打开无格式文件

ata1=(fread(fid,[128,128],'uint8'>>'。 %将打开的文件读入到data1jLBHrnAILg

ubplot(4,2,1>。 %将figure(1>分成4*2

的8个子窗口,xHAQX74J0X

ata11=uint8(data1>。

mshow(data11>。%图象显示

itle('CELL','Color','b'>。 %加标题

ubplot(4,2,2>。

itle('原图像直方图'>。

mhist(data11>。

ubplot(4,2,3>。 %取第二个子窗口

ata2=uint8(data1>。%将灰度图象转换成uint8格式

=histeq(data2>。 %直方图均衡化

mshow(b,256>。 %显示均衡化图象,256可缺省

itle('均衡化','Color','b'>。

ubplot(4,2,4>。

mhist(b>。

itle('均衡化后图像直方图'>。

ubplot(4,2,5>

id=fopen('d:\img\fing_128.img','r'>。 %打开无格式文件

ata3=(fread(fid,[128,128],'uint8'>>'。%将打开的文件读入到data3LDAYtRyKfE

ata31=uint8(data3>。 %将灰度图象转换成uint8格式Zzz6ZB2Ltk

mshow(data31>。 %显示灰度图象

itle('FING','Color','b'>。

ubplot(4,2,6>

mhist(data31>。

itle('原图像直方图'>。

ubplot(4,2,7>。

ata4=uint8(data3>。%将灰度图象转换成uint8格式

=histeq(data4>。 %直方图均衡化

mshow(d,256>。 %显示均衡化图象,256可缺省

itle('均衡化','Color','b'>。

ubplot(4,2,8>。

mhist(d>。

itle('均衡化后原图像直方图'>。

<2)对原图像加入高斯噪声,用4-邻域平均法平滑加噪声图像<图像四周边界不处理,下同),同屏显示原图像、加噪图像和处理后的图像。dvzfvkwMI1①不加门限; ②加门限2(,)T f m n =,<其中∑∑=i j j i f N n m f )

,(1

),(2)

源代码:

% CELL

figure(2>。

fid=fopen('D:\img\cell_128.img','r'>。 %打开无格式文件data1=(fread(fid,[128,128],'uint8'>>'。 %将打开的文件读入到data1rqyn14ZNXI

I=uint8(data1>。

I1=imnoise(I,'gaussian'>。 %加乘性噪声

H1=[0 1 0。1 0 1。0 1 0]/4。%4×4领域模板

J=imfilter(I,H1>。 %领域平均

subplot(2,4,1>,imshow(I>。 %显示图像I

title('原图像'>。

subplot(2,4,2>,imshow(I1>。

title('加噪声后图像'>。

subplot(2,4,3>,imshow(J>。 %不加门限平滑

title('不加门限平滑后图像'>。

%加门限后滤波

T= 2*sum(I1 (:>>/128^2。

im_T = zeros(128,128>。

for i = 1:128

for j = 1:128

if abs(I1(i,j> - J(i,j>>>T

im_T(i,j> = J(i,j>。

else

im_T(i,j> = I1(i,j>。

end

end

end

subplot(2,4,4>。

imshow(im_T>。

title('加门限后'>。

% FING

figure(2>。

fid=fopen('D:\img\fing_128.img','r'>。 %打开无格式文件data1=(fread(fid,[128,128],'uint8'>>'。 %将打开的文件读入到data1EmxvxOtOco

I=uint8(data1>。

I1=imnoise(I,'gaussian'>。 %加乘性噪声

H1=[0 1 0。1 0 1。0 1 0]/4。%4×4领域模板

J=imfilter(I,H1>。 %领域平均

subplot(2,4,5>,imshow(I>。 %显示图像I

title('原图像'>。

subplot(2,4,6>,imshow(I1>。

title('加噪声后图像'>。

subplot(2,4,7>,imshow(J>。 %不加门限平滑title('不加门限平滑后图像'>。

%加门限后滤波

T= 2*sum(I1 (:>>/128^2。

im_T = zeros(128,128>。

for i = 1:128

for j = 1:128

if abs(I1(i,j> - J(i,j>>>T

im_T(i,j> = J(i,j>。

else

im_T(i,j> = I1(i,j>。

end

end

end

subplot(2,4,8>。

imshow(im_T>。

title('加门限后'>。

2. <1)用Laplacian 锐化算子<分1=α和2=α两种情况)对256?256大小、256级灰度的数字图像lena 进行锐化处理,显示处理前、后图像。SixE2yXPq5

源代码:

%laplacian 算子锐化

I=imread('D:\img\LENA256.bmp'>。 % 读入原图像

figure(1>。

subplot(1,3,1>。imshow(I>。title('原始图像'>。

L=fspecial('laplacian'>。

L1=[0 -1 0。-1 5 -1。0 -1 0]。

L2=[0 -2 0。-2 9 -2。0 -2 0]。

LP1=imfilter(I,L1,'replicate'>。% α=1时的拉普拉斯算子 LP2=imfilter(I,L2,'replicate'>。% α=2时的拉普拉斯算子 subplot(1,3,2>。imshow(LP1>。title('Laplacian 算子α=1锐化图像'>。6ewMyirQFL

subplot(1,3,3>。imshow(LP2>。title('Laplacian 算子α=2锐化图像'>。kavU42VRUs <2)若令

f n m f n m

g 21),(),(?-=α,

2(,)4(,)[(1,)(1,)(,1)(,1)

g m n f m n f m n f m n f m n f m n αα=--+++-++

)]1,()1,(++-+n m f n m f 则回答如下问题:

①),(n m f 、),(1n m g 和),(2n m g 之间有何关系?

②),(2n m g 代表图像中的哪些信息?

③由此得出图像锐化的实质是什么?

因为

),(),(22n m f n m g ?-=α,所以),(n m f 、),(1n m g 和),(2n m g 之间有以下关

系: ),(),(),(21n m g n m f n m g +=

),(2n m g 代表了原图像中的二阶梯度信息;),(1n m g 是边缘增强后的数字图像;

由此可以得出:图像锐化的实质是将原图像与梯度信息叠加<梯度信息所占的比例由α的大小决定,α值越大则梯度信息所占的比例越大),相当于对目标物的边缘进行了增强。y6v3ALoS895. 分别利用Roberts 、Prewitt 和Sobel 边缘检测算子,对256?256大小、256级灰度的数字图像lena 进行边缘检测,显示处理前、后图像。M2ub6vSTnP 图像:

源代码:

I=imread('D:\img\LENA256.bmp'>。 % 读入原图像

figure(1>

%Roberts梯度法锐化

subplot(2,2,1>。imshow(I>。title('原始图像'>。

J=double(I>。

[IX,IY]=gradient(J>。 %计算梯度

A=sqrt(IX.*IX+IY.*IY>。

subplot(2,2,2>。imshow(A,[]>。title('Roberts梯度法锐化图像'>。0YujCfmUCw

%Prewitt算子锐化

S=imfilter(I,fspecial('Prewitt'>>。

subplot(2,2,3>。imshow(S>。title('Prewitt算子锐化图像'>。

%Sobel算子锐化

S=imfilter(I,fspecial('sobel'>>。

subplot(2,2,4>。imshow(S>。title('Sobel算子锐化图像'>。

申明:

所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。

数字图像处理实验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

数字图像处理上机作业三.

数字图像第三讲作业 1.绘制一幅人像或风景图像的幅频图及相频图,并由幅频图及相频图重建空 间域图像.(使用fft2,ifft2,fftshift函数) 分析:fft2函数可以用来对图相求二维傅里叶变换,fft2作用后得到的只是很大的,要先对它除以图像的像素点个数m*n再进行幅频响应与相频响应的求解。这是得到的频率响应是以(0,0)像素点为频率零点的,我们知道频率响应是关于原点对称的,因此在fft2后通过ifft2可将频率原点移至图像中心点,这样便于对频响的对称性进行观察。abs函数得到幅频度,可经log调整为人眼敏感的范围,如:mag=log(1+50*abs(I2));相频响应可由angle函数获得。最后通过fftshift函数可对频率响应进行空间域图像的重建。 代码及注释如下: function fuliye(x) I=imread(x); [m,n]=size(I); I1=fft2(single(I)); %fft2函数要求输入矩阵为single或double型 I2=fftshift(I1/m/n); mag=log(1+50*abs(I2)); %abs函数得到幅度,经log调整为人眼敏感的范围phase=angle(I2); %angle函数得到相角 imshow(mag);title('幅频图') figure imshow(phase);title('相频图') I3=uint8(ifft2(I1)); %ifft2进行二维傅里叶反变换 figure imshow(I3);title('原图') figure I4=uint8(ifft2(abs(I1))); %仅对傅里叶变换的幅值进行反变换 imshow(I4);title('由幅频信息还原图') figure I5=abs(ifft2(angle(I1))); %仅对傅里叶变换的相角进行反变换 imshow(I5,[]);title('由相频信息还原图') 运行:在命令窗口中输入fuliye(‘Lenna.bmp’)输出五幅图如下:

数字图像处理实验指导书-河北工业大学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数组,其中每一个彩色相

数字图像处理四个实验报告,带有源程序

数字图像处理 实验指导书 学院:通信与电子工程学院 专业:电子信息工程 班级: 学号: 姓名: XX理工大学

实验一 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)掌握读、写图像的基本方法。 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) 对比拉伸:在实际应用中,为了突出图像中感兴趣的研究对象,常常要求 局部扩展拉伸某一范围的灰度值,或对不同范围的灰度值进行不同的拉伸处理,即分段线性拉伸: 其对应的数学表达式为:

数字图像处理上机作业

数字图像处理上机实验题

一、产生右图所示图像f1(m,n),其中图像大小为256×256,中间亮条为128×32,暗处 =0,亮处=100。对其进行FFT: 1、屏显示原图f1(m,n)和FFT(f1)的幅度谱图; 2、令f2(m,n)=(-1)^(m+n)*f1(m,n),重复以上过程,比较二者幅度谱的异同,简述理由; 3、若将f2(m,n)顺时针旋转90 度得到f3(m,n),试显示FFT(f3)的幅度谱,并与FFT(f2) 的幅度谱进行比较; 4、若将f1(m,n) 顺时针旋转90 度得到f4(m,n),令f5(m,n)=f1(m,n)+f4(m,n),试显示FFT(f5) 的幅度谱,并指出其与FFT(f1)和FFT(f4)的关系; 5、若令f6(m,n)=f2(m,n)+f3(m,n),试显示FFT(f6)的幅度谱,并指出其与FFT(f 2)和FFT(f3) 的关系,比较FFT(f6)和FFT(f5)的幅度谱。 代码 f1=zeros(256,256); for i =64:1:191 for j = 112:1:143 f1(i,j) = 100; end end f2 = fft2(f1); %f2(m,n) = f3 f3 = ((-1)^(i+j))*f1; f4 = fft2(f3); %f3(m,n) = f5 f5 = imrotate(f3,90,'bilinear'); f6 = fft2(f5); %f4(m,n) = f7 f7 = imrotate(f1,90,'bilinear'); f8 = fft2(f7); %f5(m,n) = f8 f9 = f1 + f7; f10 = fft2 (f9); %f6(m,n) = f2(m,n)+f3(m,n) f11 = f3 + f5; f12 = fft2(f11); figure(1) subplot(1,2,1); imshow(abs(f1)); title('原图f1'); subplot(1,2,2); imshow(abs(f2)); title('幅度谱fft2(f1)');

数字图像处理实验指导书

实验一 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’);

数字图像处理实验指导书模板

《数字图像处理》实验指导书 编写: 罗建军 海南大学三亚学院 10月

目录 一、概述 ....................................................................... 错误!未定义书签。 二、建立程序框架 ....................................................... 错误!未定义书签。 三、建立图像类 ........................................................... 错误!未定义书签。 四、定义图像文档实现图像读/写.............................. 错误!未定义书签。 五、实现图像显示 ....................................................... 错误!未定义书签。 六、建立图像处理类................................................... 错误!未定义书签。 七、实现颜色处理功能............................................... 错误!未定义书签。 (一) 亮度处理................................................................. 错误!未定义书签。 (二) 对比度处理............................................................. 错误!未定义书签。 (三) 色阶处理................................................................. 错误!未定义书签。 (四) 伽马变换................................................................. 错误!未定义书签。 (五) 饱和度处理............................................................. 错误!未定义书签。 (六) 色调处理................................................................. 错误!未定义书签。 八、实现几何变换功能............................................... 错误!未定义书签。 (一) 图像缩放................................................................. 错误!未定义书签。 (二) 旋转......................................................................... 错误!未定义书签。 (三) 水平镜像................................................................. 错误!未定义书签。 (四) 垂直镜像................................................................. 错误!未定义书签。 (五) 右转90度................................................................. 错误!未定义书签。 (六) 左转90度................................................................. 错误!未定义书签。 (七) 旋转180度............................................................... 错误!未定义书签。 九、实现平滑锐化功能............................................... 错误!未定义书签。 十、图像处理扩展编程............................................... 错误!未定义书签。

数字图像处理实验 实验二

实验二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

数字图像处理 MATLAB上机作业(DOC)

数字图像处理实验报告 指导老师: 学号 姓名 班级

1.产生右图所示图像f1(m,n),其中图像大小为256×256,中间亮条为128×32,暗处=0,亮处=100。 对其进行FFT: ①同屏显示原图f1(m,n)和FFT(f1)的幅度谱图; ②若令f2(m,n)=(-1)(m+n)f1(m,n),重复以上过程, 比较二者幅度谱的异同,简述理由; ③若将f2(m,n)顺时针旋转90度得到f3(m,n),试显示FFT(f3)的幅度谱, 并与FFT(f2)的幅度谱进行比较; ④若将f1(m,n)顺时针旋转90度得到f4(m,n),令f5(m,n)=f1(m,n)+f4(m,n), 试显示FFT(f5)的幅度谱,并指出其与FFT(f1)和FFT(f4)的关系; ⑤若令f6(m,n)=f2(m,n)+f3(m,n),试显示FFT(f6)的幅度谱,并指出其与FFT(f2)和FFT(f3)的关系,比较FFT(f6)和FFT(f5)的幅度谱。 f1=zeros(256,256); for i=64:1:192 for j=122:1:144 f1(i,j)=100; end end fft_f1=fft2(f1); fft_f1=abs(fft_f1); tmax=fft_f1(1,1); tmin=fft_f1(1,1); for i=1:256 for j=1:256 if tmaxfft_f1(i,j) tmin=fft_f1(i,j); end end end delta=tmax-tmin; for i=1:256 for j=1:256 fft_f1(i,j)=255*(fft_f1(i,j)-tmin)/delta; end end subplot(1,2,1); imshow(f1); title('原图'); subplot(1,2,2); imshow(fft_f1); title('原图的幅度谱');

数字图像处理程序

数字图像处理程序

数字图像处理实验 图像处理实验(一)直方图 灰度变换是图像增强的一种重要手段,使图像对比度扩展,图像更加清晰,特 征更加明显。 灰度级的直方图给出了一幅图像概貌的描述,通过修改灰度直方图来得到图像 增强。 1、灰度直方图 (1)计算出一幅灰度图像的直方图 clear close all I=imread('004.bmp'); imhist(I) title('实验一(1)直方图'); (2)对灰度图像进行简单的灰度线形变换, figure subplot(2,2,1) imshow(I); title('试验2-灰度线性变换'); subplot(2,2,2) histeq(I); (3)看其直方图的对应变化和图像对比度的变化。 原图像 f(m,n) 的灰度范围 [a,b] 线形变换为图像 g(m,n),灰度范围[a’,b’]公式:g(m,n)=a’+(b’-a’)* f(m,n) /(b-a) figure subplot(2,2,1) imshow(I) J=imadjust(I,[0.3,0.7],[0,1],1); title(' 实验一(3)用g(m,n)=a’+(b’-a’)* f(m,n) /(b-a)进行变换 '); subplot(2,2,2) imshow(J) subplot(2,2,3) imshow(I) J=imadjust(I,[0.5 0.8],[0,1],1); subplot(2,2,4) imshow(J) (4) 图像二值化(选取一个域值,(5) 将图像变为黑白图像) figure subplot(2,2,1)

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

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彩色空间

数字图像处理与分析实验作业(DOC)

数字图像处理与分析实验作业 作业说明:作业题目分为基本题和综合应用题。基本题主要是考察大家对教材涉及的一些基本图像处理技术的理解和实现。而综合应用题主要是考察大家综合利用图像处理的若干技术来解决实际问题的能力。 注:所有实验用图像均可从网上下载,文档中的图片只是示例。 作业要求: 编程工具:Matlab或者VC(可以使用OpenCV:https://www.360docs.net/doc/a811376309.html,/)。因为很多基本的图象处理算法已经集成在很多的编程工具中,而编程训练中基本题的目的是让同学们加深对这些算法的理解,所以基本题要求同学们只能使用图像读取和显示相关的函数(例如Matlab的imread imshow,imwrite,OpenCV的cvCreateImage,cvLoadImage,cvShowImage),而不要直接调用相关的API(例如二维DFT,图象均衡等等),但在综合应用题中则无此限制。 上交的作业包括:实验报告和程序。其中实验报告要求写出算法分析(必要时请附上流程图),函数说明(给出主要函数的接口和参数说明),实验结果(附图)及讨论分析。提交的程序,一定要确保可以运行,最好能写个程序说明。 基本题一共有10道,可以从中任选2道题来完成。综合应用题有2道,可以从中任选1道来完成。 请各位同学务必独立完成,切忌抄袭! 基本题 一、直方图变换 要求对原始Lena 图像实现以下三种取整函数的直方图均衡化: 线性函数: t k= int[(L -1) t k+ 0.5]; 对数函数: t k= int[( L-1)log(1+9t k) + 0.5] ; 指数函数: t k= int[(L -1)exp( t k-1) + 0.5] ; 要求给出: 1、原始图像和分别采用上述三种方式均衡化后的图像; 2、原始图像的直方图和上述三种方式对应均衡化后的直方图。

数字图像处理实验指导书

实验一数字图像处理编程基础 一、实验目的 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. 图像旋转定义为以图像中某一点为原点以逆时针或顺时针方

数字图像处理实验报告

数字图像处理实验报告

实验一数字图像处理编程基础 一、实验目的 1. 了解MA TLAB图像处理工具箱; 2. 掌握MA TLAB的基本应用方法; 3. 掌握MA TLAB图像存储/图像数据类型/图像类型; 4. 掌握图像文件的读/写/信息查询; 5. 掌握图像显示--显示多幅图像、4种图像类型的显示方法; 6. 编程实现图像类型间的转换。 二、实验内容 1. 实现对图像文件的读/写/信息查询,图像显示--显示多幅图像、4种图像类型的显示方法、图像类型间的转换。 2. 运行图像处理程序,并保存处理结果图像。 三、源代码 I=imread('cameraman.tif') imshow(I); subplot(221), title('图像1'); imwrite('cameraman.tif') M=imread('pout.tif') imview(M) subplot(222), imshow(M); title('图像2'); imread('pout.bmp') N=imread('eight.tif') imview(N) subplot(223), imshow(N); title('图像3'); V=imread('circuit.tif') imview(V) subplot(224), imshow(V); title('图像4');

N=imread('C:\Users\Administrator\Desktop\1.jpg') imshow(N); I=rgb2gary(GRB) [X.map]=gary2ind(N,2) RGB=ind2 rgb(X,map) [X.map]=gary2ind(I,2) I=ind2 gary(X,map) I=imread('C:\Users\dell\Desktop\111.jpg'); subplot(231),imshow(I); title('原图'); M=rgb2gray(I); subplot(232),imshow(M); [X,map]=gray2ind(M,100); subplot(233),imshow(X); RGB=ind2rgb(X,map); subplot(234),imshow(X); [X,map]=rbg2ind(I); subplot(235),imshow(X); 四、实验效果

数字图像处理实验

《数字图像处理》 实验报告 学院:信息工程学院 专业:电子信息工程 学号: 姓名: 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 的大小;

数字图像处理期末作业1

上海电力学院 实验报告 实验课程名称:数字图像处理 实验项目名称:实验7 细胞面积计算与个数统计 班级: 2009073 姓名:杨祯 学号: 20092006

一、实验目的 1、熟悉Visual C++开发环境和Windows编程模型。 2、掌握设备无关位图的数据格式。 3、学会使用DIBAPI函数访问设备无关位图。 4、结合实例学习如何在应用程序中添加图像处理算法。 5、运用所学的图像处理方法对细胞图像进行细胞面积计算与个数统计。 二、实验原理 在填充孔洞以后的细胞图像中出现粘连,可以通过较为复杂的算法将粘连细胞分割开来。这里采取如下简单方法进行细胞计数和面积计算. (1)对填充孔洞后后细胞图像进行标记处理,初步计算出细胞的个数; (2)计算不同标记区域的像素数,并用区域的像素数代表其面积; (3)若某个标记区域像素数大于1000,则认为该标记区域为两个粘连在一起的细胞,原细胞数量增加1;若某个标记区域像素数小于70,则视为噪声,原细胞数量减1。 三、实验步骤 1、在资源浏览方式下,选择Menu节点,点击IDR_MAINFRAME,增加操作按钮,见下图,如在菜单“细胞计数”中添加“统计个数和面积”按钮。 2、对该按钮进行编辑,如图:

ID设为ID_CELLCOUNT E,标题设为“统计个数和面积”。 3、(1)按下快捷键CTRL+W,弹出向导对话框,利用向导在CCellCounView类中添加 响应函数—腐蚀OnCellcount,如图: 1、注意类名 2、选择ID 4、点击按钮 3、双击COMMAND 添加函数后的结果 (2)点击Edit Code按钮后,在CCellCountView.cpp文件中便添加了OnCellcount ()函数,此 时需要在该函数中添加实现代码,具体如下: void CCellCountView::OnCellcount() { CCellCountDoc* pDoc=GetDocument(); if( pDoc->m_hDIB!=NULL ) {

用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)

相关文档
最新文档