实验二图像的代数运算

合集下载

《数字图像处理》课程教学大纲

《数字图像处理》课程教学大纲

《数字图像处理》课程教学大纲课程代码:ABJD0619课程中文名称:数字图像处理课程英文名称:Dig让a1ImageProcessing课程性质:选修课程学分数:3学分课程学时数:48学时(32理论课时+16实验学时)授课对象:电子信息工程本课程的前导课程:高等数学,概率论,线性代数,数字信号处理,信息论,程序设计等一、课程简介数字图像处理是一门新兴的跨学科的前沿高科技,在军事、工业、科研、医学等领域获得了广泛应用,是国内外高校和科研院所的研窕生教育中一个重要的研究方向。

通过本课程的学习,同学们将掌握数字图像处理的基本理论与方法,包括图像变换、图像增强、图像分割、图像恢复、图像识别、图像压缩编码、数字图像处理系统及应用等内容。

二、教学基本内容和要求(-)数字图像处理方法概述教学内容:数字图像处理的研究对象、基本应用、研究内容等,数字图像的基本概念、彩色图像的调色板等概念。

课程的重点、难点:重点:CDIB类与程序框架结构介绍。

难点:调色板的基本概念和应用。

教学要求:D了解本课程研究的对象、内容及其在培养软件编程高级人才中的地位、作用和任务;2)了解数字图像处理的应用;3)理解数字图像的基本概念、与设备相关的位图(DDB)、与设备无关的位图(D1B);4)理解调色板的基本概念和应用;5)了解CD1B类与程序框架结构介绍;6)掌握位图图像处理技术。

(二)图像的几何变换教学内容:图像的几何变换种类以及概念,几何变换的实现原理和实施方法课程的重点、难点:重点:镜像变换。

难点:旋转。

教学要求:1)理解图像的缩放、平移、镜像变换、转置、旋转。

(三)图像灰度变换教学内容:直方图的概念、灰度的点运算(包含灰度信息的线性变化、指数变换等)、直方图的均匀化和规定化课程的重点、难点:重点:灰度直方图。

难点:灰度分布均衡化。

教学要求:1)了解非O元素取1法、固定阈值法、双固定阈值法的图像灰度变换;2)掌握灰度的线性变换、窗口灰度变换处理、灰度拉伸、灰度直方图、灰度分布均衡化。

图像基本运算实验指导

图像基本运算实验指导

图像的缩放
1 、实验内容 对一幅图像实现按比例缩小和不按比例任意缩小的效果,以及图像的成倍放大和 不按比例放大效果。 2 、实验原理 数字图像的比例缩放是指将给定的图像在 x 方向和 y 方向按相同的比例缩放 a 倍, 从而 获得一幅新的图像,又称为全比例缩放。如果 x 方向和 y 方向缩放的比例不同,则图像的比 例缩放会改变原始图像像素间的相对位置,产生几何畸变。设原始图像中的点 A0 ( x0 , y0 ) 比 例缩放后,在新图中的对应点为 A1 ( x 1 , y1 ) ,则 A0 ( x0 , y0 ) 和 A1 ( x 1 , y1 ) 之间坐标关系可表 示如下:
J = i m 2 d o u b l e ( J ) ; K = I + 0 . 3 * J ; % 两幅图像相加 s u b p l o t ( 1 , 3 , 1 ) ; i m s h o w ( I ) ; t i t l e ( ' 人物图' ) ; s u b p l o t ( 1 , 3 , 2 ) ; i m s h o w ( J ) ; t i t l e ( ' 背景图' ) ; s u b p l o t ( 1 , 3 , 3 ) ; i m s h o w ( K ) ; t i t l e ( ' 相加后的图' ) ; i m w r i t e ( K , ' i _ l e n a 1 . j p g ' ) ; (2 )选取一幅混合图像,如上图相加得到的图像 i _ l e n a . j p g , 将混合图像与背景图像 做减法运算,程序如下,结果如图(b ) 。 A = i m r e a d ( ' i _ l e n a 1 . j p g ' ) ; B = i m r e a d ( ' r i c e . p n g ' ) ; C = A 0 . 3 * B ; % 混合图减去背景图 s u b p l o t ( 1 , 3 , 1 ) ; i m s h o w ( A ) ; t i t l e ( ' 混合图' ) ; s u b p l o t ( 1 , 3 , 2 ) ; i m s h o w ( B ) ; t i t l e ( ' 背景图' ) ; s u b p l o t ( 1 , 3 , 3 ) ; i m s h o w ( C ) ; t i t l e ( ' 分离后的图' ) ; (3 )选取一幅尺寸为 2 5 6 ×2 5 6 的灰度图,如 i _ l e n a . j p g 。设置掩膜模板,对于需要 保留下来的区域,掩膜图像的值置为 1,而在需要被抑制掉的区域,掩膜图像的值置为 0。 程序如下,结果如图(c) 。 A = i m r e a d ( ' i _ l e n a . j p g ' ) ; A = i m 2 d o u b l e ( A ) ; s u b p l o t ( 1 , 2 , 1 ) ; i m s h o w ( A ) ; t i t l e ( ' 原图' ) ; B = z e r o s ( 2 5 6 ) ; % 设置模板 B ( 4 0 : 2 0 0 , 4 0 : 2 0 0 ) = 1 ; K = A . * B ; % 两幅图像相乘 s u b p l o t ( 1 , 2 , 2 ) ; i m s h o w ( K ) ; t i t l e ( ' 局部图' ) ; 4 、实验结果与分析 (1 ) 、实验结果如图 3 . 8 所示。

matlab数字图像处理实验报告

matlab数字图像处理实验报告

《数字图像处理实验报告》实验一图像的增强一.实验目的1.熟悉图像在MATLAB下的读写、输出;2.熟悉直方图;3.熟悉图像的线性指数等;4.熟悉图像的算术运算和几何变换。

二.实验仪器计算机、MATLAB软件三.实验原理图像增强是指根据特定的需要突出图像中的重要信息,同时减弱或去除不需要的信息。

从不同的途径获取的图像,通过进行适当的增强处理,可以将原本模糊不清甚至根本无法分辨的原始图像处理成清晰的富含大量有用信息的可使用图像。

其基本原理是:对一幅图像的灰度直方图,经过一定的变换之后,使其成为均匀或基本均匀的,即使得分布在每一个灰度等级上的像素个数.f=H等或基本相等。

此方法是典刑的图像空间域技术处理,但是由于灰度直方图只是近似的概率密度函数,因此,当用离散的灰度等级做变换时,很难得到完全平坦均匀的结果。

频率域增强技术频率域增强是首先将图像从空间与变换到频域,然后进行各种各样的处理,再将所得到的结果进行反变换,从而达到图像处理的目的。

常用的变换方法有傅里叶变换、DCT变换、沃尔什-哈达玛变换、小波变换等。

假定原图像为f(x,y),经傅立叶变换为F(u,v)。

频率域增强就是选择合适的滤波器H(u,v)对F(u,v)的频谱成分进行处理,然后经逆傅立叶变换得到增强的图像。

四.实验内容及步骤1.图像在MATLAB下的读写、输出;实验过程:>> I = imread('F:\image\');figure;imshow(I);title('Original Image');text(size(I,2),size(I,1)+15, ...'', ...'FontSize',7,'HorizontalAlignment','right');Warning: Image is too big to fit on screen; displaying at 25% > In imuitools\private\initSize at 86In imshow at 1962.给定函数的累积直方图。

Matlab图像处理实验指导书

Matlab图像处理实验指导书

郑州大学《Matlab应用图像处理》课程实验指导书电气工程学院·生物医学工程系2006年11月实验一 Matlab图像显示方法一、实验目的1.了解Matlab的基本功能及操作方法2.练习图像读写和显示函数的使用方法3.掌握Matlab支持的五类图像的显示方法二、实验内容1.图像的读写A)图像读RGB = imread('ngc6543a.jpg');B)图像写先从一个.mat 文件中载入一幅图像,然后利用图像写函数imwrite,创建一个.bmp 文件,并将图像存入其中。

load clownwhosimwrite(X,map,'clown.bmp')C)图像文件格式转换bitmap = imread('clown.bmp','bmp');imwrite(bitmap,'clown.png','png');2.图像显示A)二进制图像的显示BW1=zeros(20,20); %创建仅包含0/1的双精度图像BW1(2:2:18,2:2:18)=1;imshow(BW1,'notruesize');whosBW2=uint8(BW1);figure,imshow(BW2,'notruesize')BW3=BW2~=0; %逻辑标志置为onfigure,imshow(BW3,'notruesize')whosBW=imread('circles.tif');imshow(BW);figure,imshow(~BW);figure,imshow(BW,[1 0 0;0 0 1]);B)灰度图像的显示I=imread('testpat1.tif');J=filter2([1 2;-1 -2],I);imshow(I)figure,imshow(J,[])C)索引图像的显示load clown %装载一幅图像imwrite(X,map,'clown.bmp'); %保存为bmp文件imshow(X)imshow(X,map)D)RGB图像的显示I=imread('flowers.tif');imshow(I)RGB=imread('ngc6543a.jpg');figure,imshow(RGB)imshow(I(:,:,3) % 显示第3个颜色分量E)多帧图像的显示mri=uint8(zeros(128,128,1,27)); % 27帧文件mri.tif初始化for frame=1:27[mri(:,:,:,frame),map]=imread('mri.tif',frame); % 读入每一帧endimshow(mri(:,:,:,3),map); % 显示第3帧figure,imshow(mri(:,:,:,6),map); % 显示第6帧figure,imshow(mri(:,:,:,10),map); % 显示第10帧figure,imshow(mri(:,:,:,20),map); % 显示第20帧F)显示多幅图像[X1,map1]=imread('forest.tif');[X2,map2]=imread('trees.tif');subplot(1,2,1),imshow(X1,map1)subplot(1,2,2),imshow(X2,map2)subplot(1,2,1),subimage(X1,map1)subplot(1,2,2),subimage(X2,map2)三、思考题:1.图像显示时,若不带参数’notruesize’,显示效果如何?2.如何显示RGB图像的某一个颜色分量?3.如何显示多帧图像的所有帧?如何根据多帧图像创建电影片段?实验二图像运算一、实验目的1.熟悉图像点运算和代数运算的实现方法2.了解图像几何运算的简单应用3.了解图像的邻域操作二、实验内容1.图像点运算读入图像‘rice.tif’,通过图像点运算改变对比度。

数字图像处理实验报告

数字图像处理实验报告

目录实验一:数字图像的基本处理操作 (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('原图像');结果如图所示:图原图及其灰度图像,二值图像2.对实验任务2的实现代码如下:a=imread('d:\');A=imresize(a,[800 800]);b=imread('d:\');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.对实验任务3的实现代码如下:s=imread('d:\');i=rgb2gray(s);i=double(i);j=fft2(i);k=fftshift(j); %直流分量移到频谱中心I=log(abs(k)); %对数变换m=fftshift(j); %直流分量移到频谱中心RR=real(m); %取傅里叶变换的实部II=imag(m); %取傅里叶变换的虚部A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=circshift(s,[800 450]);b=rgb2gray(b);b=double(b);c=fft2(b);e=fftshift(c);I=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);title('原图像');subplot(2,2,2);imshow(uint8(b));title('平移图像');subplot(2,2,3);imshow(A);title('离散傅里叶变换频谱');subplot(2,2,4);imshow(B);title('平移图像离散傅里叶变换频谱');结果如图所示:4.对实验任务4的实现代码如下:s=imread('d:\');i=rgb2gray(s);i=double(i);j=fft2(i);k=fftshift(j);I=log(abs(k));m=fftshift(j);RR=real(m);II=imag(m);A=sqrt(RR.^2+II.^2);A=(A-min(min(A)))/(max(max(A)))*255;b=imrotate(s,-90);b=rgb2gray(b);b=double(b);c=fft2(b);e=fftshift(c);I=log(abs(e));f=fftshift(c);WW=real(f);ZZ=imag(f);B=sqrt(WW.^2+ZZ.^2);B=(B-min(min(B)))/(max(max(B)))*255;subplot(2,2,1);imshow(s);title('原图像');subplot(2,2,2);imshow(uint8(b));title('平移图像');subplot(2,2,3);imshow(A);title('离散傅里叶频谱');subplot(2,2,4);imshow(B);title('平移图像离散傅里叶频谱');结果如图所示::结果分析对MATLAB软件的操作开始时不太熟悉,许多语法和函数都不会使用,写出程序后,调试运行,最开始无法显示图像,检查原因,是有些标点符号没有在英文状态下输入和一些其他的细节,学会了imread(),imshow(),rgb2gray()等函数。

《图像处理》实验指导书

《图像处理》实验指导书
六、实验考核
现场考核(60%)+实验报告(40%)
七、实验报告
实验结束后,撰写实验报告,实验报告主题部分应包括:算法原理、程序流程、算法各部分主 要函数代码以及功能注释、运行结果四部分,每部分占实验报告的 10%,按照撰写情况打分。
《图像处理》实验二 图像增强பைடு நூலகம்
一、实验意义及目的
(1)进一步掌握图像处理工具 Matlab,熟悉基于 Matlab 的图像处理函数。 (2)掌握各种图像增强方法。
功能:实现两幅图像相除。
调用格式:
C=imdivide(A,B)。
四、参考代码
参考代码中实现了彩色图像的灰度化、旋转、缩放两种几何变换以及镜像及拼接。
Image1=imread('peppers.jpg'); %红绿通道互换 Image2=Image1; Image2(:,:,1)=Image1(:,:,2); Image2(:,:,2)=Image1(:,:,1); imshow(Image2); imwrite(Image2,'changecolor.jpg');
《图像处理》实验指导书
蔡利梅 编
信息与电气工程学院
学生实验守则
一、学生进入实验室必须遵守实验室的规章制度,遵守课堂纪律,保持实验室的安静和整洁,爱护 实验室的一切设施。 二、实验课前要认真预习实验指导书,写出实验预习报告,并经教师批阅后方可进行实验。 三、实验课中要遵守操作规程,不要带电连接、更改或拆除线路。线路接好后,经指导老师检查后, 方可接通电源进行实验。对于软件上机实验,不得随意删改计算机中原有的文件。 四、学生实验前对实验所用仪器设备要了解其操作规程和使用方法,凡因不预习或不按使用方法进 行操作而造成仪器设备损坏者,除书面检查外,按学校规定进行赔偿。 五、实验中主意安全,遇到事故应立即关断电源并报告教师检查处理。 六、实验完毕后要做好整理工作,实验数据必须经指导教师签阅后,才能拆除线路,并将仪器、设 备、凳子等按规定放好,经同意后方可离开实验室。 七、因故缺课的学生可向实验室申请一次补做机会。无故缺课或无故迟到(15 分钟以上)的不予补 做,该次实验无成绩;累计三次者,该实验课以不及格论,并不得参加该门理论课程的考试。 八、实验室仪器设备不能擅自搬动调换,更不能擅自带出实验室。

《数字图像处理》教学大纲

《数字图像处理》教学大纲

《数字图像处理》课程教学大纲Digital Image Processing一、课程说明课程编码:045236001 课程总学时(理论总学时/实践总学时):51(42/9),周学时:3,学分:3,开课学期:第6学期。

1.课程性质:专业选修课2.适用专业:电子信息与技术专业3.课程教学目的和要求《数字图像处理》是信号处理类的一门重要的专业选修课,通过本课程的学习,应在理论知识方面了解和掌握数字图像的概念、类型,掌握数字图像处理的基本原理和基本方法:图像变换、图像增强、图像编码、图像的复原和重建。

并通过实验加深理解数字图像处理的基本原理。

4.本门课程与其他课程关系本课程的先修课程为:数字信号处理和应用5.推荐教材及参考书推荐教材:阮秋琦,《数字图像处理学》(第二版),电子工业出版社,2007年参考书(1)姚敏等,《数字图像处理》,机械工业出版社,2006年(2)何东健,《数字图像处理》(第二版),西安电子工业出版社,2008年(3)阮秋琦,《数字图像处理基础》,清华大学出版社,2009年(4) (美)Rafael C. Gonzalez著,阮秋琦译,《数字图像处理》(第二版),电子工业出版社,2007年6.课程教学方法与手段主要采用课堂教学的方式,通过多媒体课件进行讲解,课外作业,答疑辅导。

并辅以适当的实验加深对数字图像处理的理解。

7.课程考核方法与要求本课程为考查课课程的实验成绩占学期总成绩的50%,期末理论考查占50%;考查方式为笔试。

8.实践教学内容安排实验一:图像处理中的正交变换实验二:图像增强实验三:图像复原详见实验大纲。

二、教学内容纲要与学时分配(一)数字图像处理基础(3课时)1.主要内容:图像处理技术的分类,数字图像处理的特点,数字图像处理的主要方法及主要内容,数字图像处理的硬件设备,数字图像处理的应用,数字图像处理领域的发展动向2.基本要求:了解图像处理技术的分类和特点,数字图像处理的主要方法及主要内容,熟悉数字图像处理的硬件设备。

数字图象处理基础

数字图象处理基础

本科生实验报告实验课程数字图像处理基础学院名称信息科学与技术学院专业名称软件工程学生姓名学生学号指导教师实验地点6A502实验成绩实验一实验目的:1)熟练掌握MatLAB图像处理工具读入图像、显示图像、保存多种类型图像文件和图像基本信息显示。

2)熟练掌握MatLAB矩阵索引与图像基本处理(图像旋转、裁剪、抽样)3) 熟练掌握图像算术运算在图像处理中应用。

实验内容:(1) 读入一幅彩色图像文件,用rgb2gray(f)函数转换成灰度图象并作如下操作:1) 显示图像,提取本图像的基本信息,保存不同类型的图像文件并提取保存图像文件信息。

2) 应用矩阵索引作图像的裁剪、抽样和翻转等基本处理。

(2)用M文件分别采用循环方法和代数法编写生成一幅f(x,y)=A*sin(ux+vy) 图像程序。

令u= ,v=显示图像。

(3) 应用图像算术运算完成下面的操作:1)作图像与常数的算术运算2)作两幅图像的算术运算设计与实现:内容一:f=imread('d:\1.jpg');imshow(f);whos fimwrite(f,'d:\1a1.tif');imfin 'd:\1a1.tif'imfinfo 'd:\1a1.tif'imfinfo 'd:\1a2.jpg'imwrite(f,'d:\1112.jpg','quality',25); imfinfo 'd:\1112.jpg'g = rgb2gray(f);imshow(g);g1=g';g2=g(50:150,50:150);g3=g(1:2:end,1:2:end);g4=g(end:-1:1,:);subplot(2,2,1);imshow(g1);title('图像旋转90度');subplot(2,2,2);imshow(g2);title('图像裁剪');subplot(2,2,3);imshow(g3);title('图像抽取');subplot(2,2,4);imshow(g4);title('图像翻转');执行结果:f=imread('d:\1.jpg');f=sin;plot(f(100,:) );imwrite(f,'e:\13.tif'); function [f] = sin()A=1;u=1/(4*pi);v=1/(4*pi);M=256;N=256;ticfor x=1:Mux=u*(x-1);for y=1:Nvy=v*(y-1);f(x,y)=A*sin(ux+vy); endendt1=toc;t1;ticx=0:M-1;y=0:N-1;[Y,X]=meshgrid(y,x);g=A*sin(u*X+v*Y);t2=toc;t2;figure,imshow(f); figure,imshow(g);end执行结果:f=imread('d:\1.jpg');f1=imread('d:\2.jpg'); f=rgb2gray(f);f1=rgb2gray(f1);g=imadd(f,30);imshow(g);A=f(10:80,10:80);B=f(10:80,10:80);C=A+B;D=C-A;subplot(2,3,1);imshow(f);title('A图像');subplot(2,3,2);imshow(mat2gray(C)); title('C=A+B图像'); subplot(2,3,3);imshow(B);title('B图像');subplot(2,3,4);imshow(mat2gray(C)); title('C图像');subplot(2,3,5);imshow(A);title('A图像');subplot(2,3,6);imshow(mat2gray(D)); title('D=C-A图像');f=imread('d:\1b.jpg'); f1=imread('d:\2b.jpg'); f=grb2gray(f);f=rgb2gray(f);f1=rgb2gray(f1);f=f(10:80,10:80);A=f1(10:80,10:80);B=f+A;C=B-A;subplot(2,3,1);imshow(f);title('f图像');subplot(2,3,2);imshow(A);title('A图像');subplot(2,3,3);imshow(B);title('B=f+A图像');subplot(2,3,4);imshow(B);title('B图像');subplot(2,3,5);imshow(A);title('A图像');subplot(2,3,6);imshow(C);title('C=B-A图像');g=imcomplement(f1);gg=mat2gray(double(f1));g1=immultiply(gg,3);imshow(g);imshow(g1);>> a执行结果:心得体会:通过实验一的完成,初次熟练掌握了MATLAB的一些常用方法的使用如图像的裁剪,旋转,抽样,图像的灰度处理,图像的计算,图像的读入,显示,保存等方法。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

昆明理工大学信息工程与自动化学院学生实验报告( 2012 —2013 学年第二学期)一、实验目的1.了解图像的算术运算在数字图像处理中的初步应用。

2.体会图像算术运算处理的过程和处理前后图像的变化。

二、实验原理图像的代数运算是图像的标准算术操作的实现方法,是两幅输入图像之间进行的点对点的加、减、乘、除运算后得到输出图像的过程。

如果输入图像为A(x,y)和B(x,y),输出图像为C(x,y),则图像的代数运算有如下四种形式:C(x,y) = A(x,y) + B(x,y)C(x,y) = A(x,y) - B(x,y)C(x,y) = A(x,y) * B(x,y)C(x,y) = A(x,y) / B(x,y)图像的代数运算在图像处理中有着广泛的应用,它除了可以实现自身所需的算术操作,还能为许多复杂的图像处理提供准备。

例如,图像减法就可以用来检测同一场景或物体生产的两幅或多幅图像的误差。

使用MATLAB的基本算术符(+、-、*、/ 等)可以执行图像的算术操作,但是在此之前必须将图像转换为适合进行基本操作的双精度类型。

为了更方便地对图像进行操作,MATLAB图像处理工具箱包含了一个能够实现所有非稀疏数值数据的算术操作的函数集合。

下表列举了所有图像处理工具箱中的图像代数运算函数。

表2-1 图像处理工具箱中的代数运算函数能够接受uint8和uint16数据,并返回相同格式的图像结果。

虽然在函数执行过程中元素是以双精度进行计算的,但是MATLAB工作平台并不会将图像转换为双精度类型。

代数运算的结果很容易超出数据类型允许的范围。

例如,uint8数据能够存储的最大数值是255,各种代数运算尤其是乘法运算的结果很容易超过这个数值,有时代数操作(主要是除法运算)也会产生不能用整数描述的分数结果。

图像的代数运算函数使用以下截取规则使运算结果符合数据范围的要求:超出数据范围的整型数据将被截取为数据范围的极值,分数结果将被四舍五入。

例如,如果数据类型是uint8,那么大于255的结果(包括无穷大inf)将被设置为255。

注意:无论进行哪一种代数运算都要保证两幅输入图像的大小相等,且类型相同。

三、实验步骤1.图像的加法运算图像相加一般用于对同一场景的多幅图像求平均效果,以便有效地降低具有叠加性质的随机噪声。

直接采集的图像品质一般都较好,不需要进行加法运算处理,但是对于那些经过长距离模拟通讯方式传送的图像(如卫星图像),这种处理是必不可少的。

在MATLAB中,如果要进行两幅图像的加法,或者给一幅图像加上一个常数,可以调用imadd函数来实现。

imadd函数将某一幅输入图像的每一个像素值与另一幅图像相应的像素值相加,返回相应的像素值之和作为输出图像。

imadd函数的调用格式如下:Z = imadd(X,Y)其中,X和Y表示需要相加的两幅图像,返回值Z表示得到的加法操作结果。

图像加法在图像处理中应用非常广泛。

例如,以下代码使用加法操作将图2.1中的(a)、(b)两幅图像叠加在一起:I = imread(‘rice.tif’);J = imread(‘cameraman.tif’);K = imadd(I,J);imshow(K);叠加结果如图2.2所示。

图2.1 待叠加的两幅图像图2.2 叠加后的图像效果给图像的每一个像素加上一个常数可以使图像的亮度增加。

例如,以下代码将增加图3(a)所示的RGB图像的亮度,加亮后的结果如图3(b)所示。

RGB = imread(‘flower.tif’);RGB2 = imadd(RGB,50);subplot(1,2,1);imshow(RGB);subplot(1,2,2);imshow(RGB2);加50 减50原图加50 减50图2.3 亮度增加与变暗两幅图像的像素值相加时产生的结果很可能超过图像数据类型所支持的最大值,尤其对于uint8类型的图像,溢出情况最为常见。

当数据值发生溢出时,imadd函数将数据截取为数据类型所支持的最大值,这种截取效果称之为饱和。

为了避免出现饱和现象,在进行加法计算前最好将图像转换为一种数据范围较宽的数据类型。

例如,在加法操作前将uint8图像转换为uint16类型。

2.图像的减法运算图像减法也称为差分方法,是一种常用于检测图像变化及运动物体的图像处理方法。

图像减法可以作为许多图像处理工作的准备步骤。

例如,可以使用图像减法来检测一系列相同场景图像的差异。

图像减法与阈值化处理的综合使用往往是建立机器视觉系统最有效的方法之一。

在利用图像减法处理图像时往往需要考虑背景的更新机制,尽量补偿由于天气、光照等因素对图像显示效果造成的影响。

在MATLAB中,使用imsubtract函数可以将一幅图像从另一幅图像中减去,或者从一幅图像中减去一个常数。

imsubtract函数将一幅输入图像的像素值从另一幅输入图像相应的像素值中减去,再将这个结果作为输出图像相应的像素值。

imsubtract函数的调用格式如下:Z = imsubtract(X,Y);其中,Z是X-Y操作的结果。

以下代码首先根据原始图像(如图2.4(a)所示)生成其背景亮度图像,然后再从原始图像中将背景亮度图像减去,从而生成图2.4(b)所示的图像:rice = imread(‘rice.tif’);background = imerode(rice, strel(‘disk’,15));rice2 = imsubtract(rice, background);subplot(1,2,1);imshow(rice);subplot(1,2,2);imshow(rice2);图2.4 原始图像、减去背景图像如果希望从图像数据I的每一个像素减去一个常数,可以将上述调用格式中的Y替换为一个指定的常数值,例如:Z = imsubtract(I,50);减法操作有时会导致某些像素值变为一个负数,对于uint8或uint16类型的数据,如果发生这种情况,那么imsubtract函数自动将这些负数截取为0。

为了避免差值产生负值,同时避免像素值运算结果之间产生差异,可以调用函数imabsdiff。

imabsdiff将计算两幅图像相应像素差值的绝对值,因而返回结果不会产生负数。

该函数的调用格式与imsubtract函数类似。

3. 图像的乘法运算两幅图像进行乘法运算可以实现掩模操作,即屏蔽掉图像的某些部分。

一幅图像乘以一个常数通常被称为缩放,这是一种常见的图像处理操作。

如果使用的缩放因子大于1,那么将增强图像的亮度,如果因子小于1则会使图像变暗。

缩放通常将产生比简单添加像素偏移量自然得多的明暗效果,这是因为这种操作能够更好地维持图像的相关对比度。

此外,由于时域的卷积或相关运算与频域的乘积运算对应,因此乘法运算有时也被作为一种技巧来实现卷积或相关处理。

在MATLAB中,使用immultiply函数实现两幅图像的乘法。

immultiply函数将两幅图像相应的像素值进行元素对元素的乘法操作(MATLAB点乘),并将乘法的运算结果作为输出图形相应的像素值。

immulitply函数的调用格式如下:Z = immulitply(X,Y)其中,Z=X*Y。

例如,以下代码将使用给定的缩放因子对图2.5(a)所示的图像进行缩放,从而得到如图2.5(b)所示的较为明亮的图像:I = imread(‘moon.tif’);J = immultiply(I,1.2);subplot(1,2,1);imshow(I);subplot(1,2,2);imshow(J);图2.5 原图和乘以因子1.5 的图像uint8图像的乘法操作一般都会发生溢出现象。

Immultiply函数将溢出的数据截取为数据类型的最大值。

为了避免产生溢出现象,可以在执行乘法操作之前将uint8图像转换为一种数据范围较大的图像类型,例如uint16。

4.图像的除法运算除法运算可用于校正成像设备的非线性影响,这在特殊形态的图像(如断层扫描等医学图像)处理中常常用到。

图像除法也可以用来检测两幅图像间的区别,但是除法操作给出的是相应像素值的变化比率,而不是每个像素的绝对差异,因而图像除法也称为比率变换。

在MATLAB中使用imdivide函数进行两幅图像的除法。

imdivide函数对两幅输入图像的所有相应像素执行元素对元素的除法操作(点除),并将得到的结果作为输出图像的相应像素值。

imdivide函数的调用格式如下:Z = imdivide(X,Y)其中,Z=X/Y。

例如,以下代码将图4所示的两幅图像进行除法运算,请将这个结果和减法操作的结果相比较,对比它们之间的不同之处:Rice = imread(‘rice.tif’);I = double(rice);J= I * 0.43 + 90;Rice2 = uint8(J);Ip = imdivide(rice, rice2);Imshow(Ip, []);除法操作的结果如图2.6所示。

图2.6 原图和减背景后的图像相除的图像效果5.图像的四则代数运算可以综合使用多种图像代数运算函数来完成一系列的操作。

例如,使用以下语句计算两幅图像的平均值:I = imread(‘rice.tif’);I2 = imread(‘cameraman.tif’);K = imdivide(imadd(I,I2),2);建议最好不要用这种方式进行图像操作,这是因为,对于uint8或uint16数据,每一个算术函数在将其输出结果传递给下一项操作之前都要进行数据截取,这个截取过程将会大大减少输出图像的信息量。

执行图像四则运算操作较好的一个办法就是使用函数imlincomb。

函数imlincomb按照双精度执行所有代数运算操作,而且仅对最好的输出结果进行截取,该函数的调用格式如下:Z = imlincomb(A,X,B,Y,C);其中,Z=A*X+B*Y+C。

MATLAB会自动根据输入参数的个数判断需要进行的运算。

例如,以下语句将计算Z=A*X+C:Z = imlincomb(A,X,C)而以下语句将计算Z=A*X+B*Y:Z = imlincomb(A,X,B,Y,)四、实验报告要求1 描述实验的基本步骤,用数据和图片给出各个步骤中取得的实验结果并进行必要的讨论。

2 必须包括原始图像及其计算处理后的图像以及相应的解释。

1)图像加法运算I = imread('2.bmp');J = imread('1.jpg');K = imadd(I,J);imshow(K); %使用加法操作将图2.1中的1.jpg、2.bmp两幅图像叠加在一起:RGB = imread('1.jpg');RGB2 = imadd(RGB,50);subplot(1,2,1);imshow(RGB);subplot(1,2,2);imshow(RGB2); %亮度加502)图像减法运算rice = imread('2.bmp');background = imerode(rice, strel('disk',1));rice2 = imsubtract(rice, background);subplot(1,2,1);imshow(rice);subplot(1,2,2);imshow(rice2);RGB = imread('1.jpg');RGB2 = imsubtract(RGB,50);subplot(1,2,1);imshow(RGB);subplot(1,2,2);imshow(RGB2); %亮度减503)图像乘法运算I = imread('1.jpg');J = immultiply(I,1.8);subplot(1,2,1);imshow(I);subplot(1,2,2);imshow(J); % 原图和乘以因子1.8 的图像4)图像除法运算clear all;close all;rice = imread('2.bmp');I = double(rice);J= I * 0.01 + 10;rice2 = uint8(J);Ip = imdivide(rice, rice2);Imshow(Ip, []);5)图像四则代数运算I = imread('1.jpg');I2 = imread('2.bmp');subplot(2,2,1);imshow(I);subplot(2,2,2);imshow(I2);K = imdivide(imadd(I,I2),2);subplot(2,1,2);imshow(K);%计算两幅图像的平均值:五、思考题由图像算术运算的运算结果,思考图像减法运算在什么场合上发挥优势?答:使用背景减法进行运动目标检测可以提取出完整的目标图像.可将所得标用于进一步的图像处理工作中。

相关文档
最新文档