实验2 图像的基本运算
《数字图像处理教学课件》第3章图像的基本运算(2)
![《数字图像处理教学课件》第3章图像的基本运算(2)](https://img.taocdn.com/s3/m/9b4509908662caaedd3383c4bb4cf7ec4afeb6b5.png)
实例
源图像
(b)双线性插值方法的结果
实例
用最近邻插值和双线性插值的方法分别将老虎放大 1.5倍。
实例
采用最近邻插值放大1.5倍 采用双线性插值放大1.5倍
比例变换中对应图像的确定
比例变换中对应图像的确定
假设输出图像的宽度为W,高度为H; 输入图像的宽度为w高度为h,要将输入图像的尺度拉伸或压
枕形失真
由镜头引起的画面向中间“收缩”的现象。
6.图像变形
图像变形(Image Warping) 图像变形合成(Image morphing )
参数化(全局)变形(warping)
参数化变形实例
Translation 平移
Rotation 旋转
Aspect 缩放
Affine 仿射变换
Perspective 透视变换
x' a b c x y' d e f y 1 0 0 1 1
x' ax by c
y'
dx
ey
f
将三对对应点的坐标代入上面公式,
可以求得变换的
对于内的任意一个像素点,再计算其新的坐标,然后 颜色映像
三角变形实例
四边形区域的变换方法
图像变形的几何校正
用控制点及插值过程定义,通常具有较为复杂的数学 变换函数
投影变换
投影变换是下列变换的组合
仿射变换 投影变形
投影变换的性质:
原点无需变换至原点 线变换为线 比例不保持 平行线无需保持平行
x' a b c x y' d e f y w' g h i w
举例:三角变形
B
源图像
?
B’ 目标图像
T(x,y)
图像基本运算实验指导
![图像基本运算实验指导](https://img.taocdn.com/s3/m/50e20e0f16fc700abb68fce3.png)
图像的缩放
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 所示。
实验二图像的代数运算
![实验二图像的代数运算](https://img.taocdn.com/s3/m/3adb403d551810a6f42486a9.png)
理工大学信息工程与自动化学院学生实验报告( 2012 —2013 学年第二学期)课程名称:图形图像处理开课实验室:信自444 2013年 5月 15日一、实验目的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,各种代数运算尤其是乘法运算的结果很容易超过这个数值,有时代数操作(主要是除法运算)也会产生不能用整数描述的分数结果。
图像的代数运算函数使用以下截取规则使运算结果符合数据围的要求:超出数据围的整型数据将被截取为数据围的极值,分数结果将被四舍五入。
数字图像处理-图像基本运算
![数字图像处理-图像基本运算](https://img.taocdn.com/s3/m/34e8cdb5cd22bcd126fff705cc17552707225e6d.png)
数字图像处理_图像基本运算图像基本运算1点运算线性点运算是指输⼊图像的灰度级与输出图像呈线性关系。
s=ar+b(r为输⼊灰度值,s为相应点的输出灰度值)。
当a=1,b=0时,新图像与原图像相同;当a=1,b≠0时,新图像是原图像所有像素的灰度值上移或下移,是整个图像在显⽰时更亮或更暗;当a>1时,新图像对⽐度增加;当a<1时,新图像对⽐度降低;当a<0时,暗区域将变亮,亮区域将变暗,点运算完成了图像求补; ⾮线性点运算是指输⼊与输出为⾮线性关系,常见的⾮线性灰度变换为对数变换和幂次变换,对数变换⼀般形式为:s=clog(1+r)其中c为⼀常数,并假设r≥0.此变换使窄带低灰度输⼊图像映射为宽带输出值,相对的是输出灰度的⾼调整。
1 x=imread('D:/picture/DiaoChan.jpg');2 subplot(2,2,1)3 imshow(x);4 title('原图');5 J=0.3*x+50/255;6 subplot(2,2,2);7 imshow(J);8 title('线性点变换');9 subplot(2,2,3);10 x1=im2double(x);11 H=2*log(1+x1);12 imshow(H)13 title('⾮线性点运算');%对数运算幂次变换⼀般形式:s=cr^γ幂级数γ部分值把窄带暗值映射到宽带输出值下⾯是⾮线性点运算的幂运算1 I=imread('D:/picture/DiaoChan.jpg');2 subplot(2,2,1);3 imshow(I);title('原始图像','fontsize',9);4 subplot(2,2,2);5 imshow(imadjust(I,[],[],0.5));title('Gamma=0.5');7 imshow(imadjust(I,[],[],1));title('Gamma=1');8 subplot(2,2,4);9 imshow(imadjust(I,[],[],1.5));title('Gamma=1.5');2代数运算和逻辑运算加法运算去噪处理1 clear all2 i=imread('lenagray.jpg');3 imshow(i)4 j=imnoise(i,'gaussian',0,0.05);5 [m,n]=size(i);6 k=zeros(m,n);7for l=1:1008 j=imnoise(i,'gaussian',0,0.05);9 j1=im2double(j);10 k=k+j1;11 End12 k=k/100;13 subplot(1,3,1),imshow(i),title('原始图像')14 subplot(1,3,2),imshow(j),title('加噪图像')15 subplot(1,3,3),imshow(k),title(‘求平均后的减法运算提取噪声1 I=imread(‘lena.jpg’);2 J=imnoise (I,‘lena.jpg’,0,0.02);3 K=imsubtract(J,I);4 K1=255-K;5 figure;imshow(I);7 figure;imshow(K1);乘法运算改变图像灰度级1 I=imread('D:/picture/SunShangXiang.jpg')2 I=im2double(I);3 J=immultiply(I,1.2);4 K=immultiply(I,2);5 subplot(1,3,1),imshow(I);subplot(1,3,2),imshow(J);6 subplot(1,3,3);imshow(K);逻辑运算1 A=zeros(128);2 A(40:67,60:100)=1;3 figure(1)4 imshow(A);5 B=zeros(128);6 B(50:80,40:70)=1;7 figure(2)8 imshow(2);9 C=and(A,B);%与10 figure(3);11 imshow(3);12 D=or(A,B);%或13 figure(4);14 imshow(4);15 E=not(A);%⾮16 figure(5);17 imshow(E);3⼏何运算平移运算实现图像的平移1 I=imread('lenagray.jpg');2 subplot(1,2,1);3 imshow(I);4 [M,N]=size(I);g=zeros(M,N);5 a=20;b=20;6for i=1:M7for j=1:N8if((i-a>0)&(i-a<M)&(j-b>0)&(j-b<N)) 9 g(i,j)=I(i-a,j-b);10else11 g(i,j)=0;12 end13 end14 end15 subplot(1,2,2);imshow(uint8(g));⽔平镜像变换1 I=imread('lena.jpg');2 subplot(121);imshow(I);3 [M,N]=size(I);g=zeros(M,N);4for i=1:M5for j=1:N6 g(i,j)=I(i,N-j+1);7 end8 end9 subplot(122);imshow(uint8(g));垂直镜像变换1 I=imread('lena.jpg');2 subplot(121);imshow(I);3 [M,N]=size(I);g=zeros(M,N);4for i=1:M5for j=1:N6 g(i,j)=I(M-i+1,j);7 end8 end9 subplot(122);imshow(uint8(g));图像的旋转1 x=imread('D:/picture/DiaoChan.jpg');2 imshow(x);3 j=imrotate(x,45,'bilinear');4 k=imrotate(x,45,'bilinear','crop');5 subplot(1,3,1),imshow(x);6 title(‘原图')7 subplot(1,3,2),imshow(j);8 title(‘旋转图(显⽰全部)')9 subplot(1,3,3),imshow(k);10 title(‘旋转图(截取局部)')⼏种插值法⽐较1 i=imread('lena.jpg');2 j1=imresize(i,10,'nearest');3 j2=imresize(i,10,'bilinear');4 j3=imresize(i,10,'bicubic');5 subplot(1,4,1),imshow(i);title(‘原始图像')6 subplot(1,4,2),imshow(j1);title(‘最近邻法')7 subplot(1,4,3),imshow(j2);title(‘双线性插值法')8 subplot(1,4,4),imshow(j3);title(‘三次内插法')放缩变换1 x=imread('D:/picture/ZiXia.jpg')2 subplot(2,3,1)3 imshow(x);4 title('原图');5 Large=imresize(x,1.5);6 subplot(2,3,2)7 imshow(Large);8 title('扩⼤为1.5');9 Small=imresize(x,0.1);10 subplot(2,3,3)11 imshow(Small);12 title('缩⼩为0.3');13 subplot(2,3,4)14 df=imresize(x,[600700],'nearest');15 imshow(df)16 title('600*700');17 df1=imresize(x,[300400],'nearest');18 subplot(2,3,5)19 imshow(df1)20 title('300*400');后记:(1)MATLAB基础知识回顾1:crtl+R是对选中的区域注释,ctrl+T是取消注释2:有的代码中点运算如O=a.*I+b/255 ,其中b除以255原因是:灰度数据有两种表式⽅法:⼀种是⽤unit8类型,取值0~255;另⼀种是double类型,取值0~1。
2.实验二 图像的基本运算
![2.实验二 图像的基本运算](https://img.taocdn.com/s3/m/6bbfb51659eef8c75fbfb3e2.png)
实验二 图像的基本运算一、实验目的与要求1.掌握图像代数运算和几何变换的基本原理 2. 了解图像代数运算和几何变换的简单应用及MATLAB 实现二、实验设备与软件1.PC 计算机系统 2. MATLAB 软件,包括图像处理工具箱(Image Processing Toolbox) 3. 实验图片三、实验原理及知识点1.图像的代数运算代数运算是指对两幅或两幅以上输入图像进行点对点的加、减、乘、除运算而得到目标图像的运算。
图像处理代数运算的4种基本形式如下:上式中,A(x,y)和B(x,y)是输入图像,C(x,y)是输出图像。
2.图像的缩放数字图像的比例缩放是指将给定的图像在x 方向和y 方向按相同的比例a 缩放,从而得到一幅新的图像,又称为全比例缩放。
如果x 方向和y 方向缩放的比例不同,则图像的比例缩放会改变图像像素间的相对位置,产生几何畸变。
设原始图像中的点A 0(x 0,y 0)比例缩放后,在新图像中的对应点为A 1(x 1,y 1),则A 0(x 0,y 0)和A 1(x 1,y 1)之间的坐标关系可表示如下:3.图像的旋转设原始图像的任意点A 0(x 0,y 0)经旋转角度ß以后得到新的位置A(x,y)。
图像的旋转可以用矩阵形式表示如下。
图像旋转之后也可以根据新点求解原始新点的坐标,其矩阵表示形式如下:101010100000,10011x a x x ax y a y y ay ⎛⎫⎛⎫⎛⎫=⎧ ⎪ ⎪⎪=⎨ ⎪ ⎪⎪=⎩ ⎪ ⎪⎪⎝⎭⎝⎭⎝⎭即00cos sin 0sin cos 010011x x y y ββββ⎛⎫⎛⎫⎛⎫ ⎪ ⎪⎪=- ⎪ ⎪⎪ ⎪ ⎪⎪⎝⎭⎝⎭⎝⎭四、实验内容及步骤1.图像的代数运算 选择两幅图像,一幅是源图像,一幅为背景图像,采用正确的图像代数运算方法,分别实现图像叠加、混合图像的分离和图像的局部显示效果。
(1)选取两幅大小一样的图像Fig2.22(a).jpg 和finger.bmp ,将两幅图像进行加法运算。
图像的基本知识和运算
![图像的基本知识和运算](https://img.taocdn.com/s3/m/fd45aafc0c22590102029d81.png)
③ 求梯度幅度
图像的减法运算也可应用于求图像梯 度函数 梯度定义形式:
f(x,y)if jf x y
梯度幅度
|f(x,y)| (f)2(f)2 x y
梯度幅度的近似计算: | f ( x , y ) | m f ( x , y ) a f ( x 1 , y x ) ||f , ( x , y [ ) f ( x |, y 1 ) |
1 0 x T0 1 y
根据矩阵相乘的规律,在坐标列矩 阵[x y] T中引入第三个元素,扩展为 3×1的列矩阵[x y 1]T,就可以实现 点的平移变换。变换形式如下:
x1 y1
10
0 1
yx1xy00
上述变换虽然可以实现图像各像素点 的平移变换,但为变换运算时更方便,一 般将2×3阶变换矩阵T进一步扩充为3×3 方阵,即采用如下变换矩阵:
1
0
x
T 0
1
y
0
0
1
这样一来,平移变换可以用如下形式 表示:
x1 1 0 xx0 y10 1 yy0 1 0 0 1 1
这种以n+1维向量表示n维向量的方 法称为齐次坐标表示法。齐次坐标的几 何意义相当于点(x,y)投影在xyz三维 立体空间的z=1的平面上。
对比度拉伸
拉伸效果:图像加亮、减暗
非线性拉伸实例2
非线性拉伸实例3
非线性拉伸实例4
2.5.3 点运算的应用
(1) 对比度增强 在一些数字图像中,技术人员所关
注的特征可能仅占据整个灰度级非常小 的一个范围。点运算可以扩展所关注部 分的灰度信息的对比度,使之占据可显 示灰度级的更大部分。又称为对比度拉 伸。
2.7.2 几何运算类型 空间变换 灰度插值
图像基本运算
![图像基本运算](https://img.taocdn.com/s3/m/6012f3cdb9f3f90f76c61b2f.png)
信息工程学院实验报告课程名称:数字图像处理Array实验项目名称:实验二图像基本运算实验时间:2016.10.9班级:姓名:学号:一、实验目的1.理解图像点运算、代数运算、几何运算的基本定义和常见方法;2.掌握在MTLAB中对图像进行点运算、代数运算、几何运算的方法;3.掌握在MATLAB中进行插值的方法4.运用MATLAB语言进行图像的插值缩放和插值旋转5.进一步熟悉了解MATLAB语言的应用。
二、实验设备与软件1.PC计算机系统2.MATLAB软件,包括图像处理工具箱(Image Processing Toolbox)3.实验图片三、实验内容及结果分析3.1图像的点运算选择pout.tif作为实验图像,实验原理及内容参照《数字图像处理及MATLAB实现――学习与实验指导书》3.5.1图像的点运算。
程序代码:I=imread('pout.tif');figure;subplot(1,3,1);imshow(I);title('原图');J=imadjust(I,[0.3;0.6],[0.1;0.9]);subplot(1,3,2);imshow(J);title('线性扩展');I1=double(I);I2=I1/255;C=2;K=C*log(1+I2);subplot(1,3,3);imshow(K);title('非线性扩展');M=255-I;figure;subplot(1,3,1);imshow(M);title('灰度倒置');N1=im2bw(I,0.4);N2=im2bw(I,0.7);subplot(1,3,2);imshow(N1);title('二值化阈值0.4');subplot(1,3,3);imshow(N2);title('二值化阈值0.7');执行结果:原图线性扩展非线性扩展灰度倒置二值化阈值0.4二值化阈值0.7实验1结果图3.2图像的代数运算选择两幅图像,一幅是原图像,一幅为背景图像,采用正确的图像代数运算方法,分别实现图像叠加、混合图像的分离和图像的局部显示效果。
图像基本运算ppt课件
![图像基本运算ppt课件](https://img.taocdn.com/s3/m/690aae37302b3169a45177232f60ddccdb38e614.png)
四、几何运算(变换)
水平镜像
垂直镜像
图像转置
18
45度旋转
90度旋转
60度旋转
19
图像缩放 (0.5, 0.5)
图像平移 (100,100)
20
1 几何变换基础
按照需要产生大小、形状和位置的变化。图像点与点之间的空 间映射关系
分类:位置变换 形状变换 基本变换: 平移、镜像、旋转、比例和错缩放、反射切 此外还有: 透视变换等复合变换,以及插值运算等。 实 现: 通过与之对应的矩阵线性变换(除了插值运算外)
O a
c b
x
y
25
2) 实现2D图像几何变换的基本变换的一 般过程
•将2×n阶的二维点集矩阵表示成齐次坐标的形式
x0i y0i 2n
x0i y0i 1 3n
•乘以相应的变换矩阵:
变换后的点集矩阵=变换矩阵T×
(图像上各点的新齐次坐标) (图像上各点的原齐次坐标)
26
3 常见几何变换
1)
主要特征?
编程练习:编制程序将读入的bmp图像格式文件的象 素数据写入数组。
53
f (0 , 0) (0 , 0)
(x , 0) (0 , y)
插值点
f (1 , 1)
f (x , y)
f (1 , 0)
x (1 , 0)
(x , y) f (0 , 1)
(1 , 1) (x , 1)
(0 , 1) y
49
(4) 高阶插值
三次样值 加窗Sinc函数
sin(x) /
50
3) 向前变换,向后变换
37
p0 (x0 , y0 ) p(x, y)
x
y
图像处理基本运算
![图像处理基本运算](https://img.taocdn.com/s3/m/50b058ccbdeb19e8b8f67c1cfad6195f312be8e0.png)
3.2.2非线性点运算Non-Linear Point Operation
加暗、减亮图像
Matlab非线性点运算
cameraman.jpg
fx=x+0.006x255-x
• a=imread 'cameraman.jpg'; • figure 1 ; imshow a; • xlabel 'a 原始图像 '; • x=1:255; • y=x+x.255-x/255;
反射
电脉冲
视网膜图 像
中央凹
人脑判读
2、亮度适应和区分
3、错视现象
马赫带效应
同时对比度
一般来说,当限定数 字图像的大小时,为了得 到质量较好的图像,可采 用如下原则:
● 对细节丰富的图像: 应细采样,粗量化,以避免 模糊混叠. ● 对缓变的图像: 应细量化,粗采样,以避 免假轮廓.
4、图像的读取、数据调用和显示
2、对图像灰度的拉伸,非线性拉伸与分段线性拉伸的区别
非线性拉伸不是通过在不同灰度值区间选择不同的线 性方程来实现对不同灰度值区间的扩展与压缩,而是在整 个灰度值范围内采用统一的非线性变换函数,利用函数的 数学性质实现对不同灰度值区间的扩展与压缩.
二、代数运算
代数运算是指两幅输入图像之间进行点 对点的加、减、乘、除运算得到输出图像的 过程.如果记输入图像为Ax,y和Bx,y,输出图 像为Cx,y,则有如下四种形式:
=
-
gx,y
T2x,y
T1x,y
图像相减—运动检测
左上: 某序列图像的第100帧; 下:某序列图像的第300帧; 右上: 两幅图像相减并取绝 对值显示的结果
图像减法应用举例
《数字图像处理》实验教案
![《数字图像处理》实验教案](https://img.taocdn.com/s3/m/171d5a9d88eb172ded630b1c59eef8c75fbf95c3.png)
一、实验目的与要求1. 目的通过本实验,使学生了解数字图像处理的基本概念、方法和算法,掌握MATLAB 软件在图像处理方面的应用,提高学生分析问题和解决问题的能力。
2. 要求(1)熟悉MATLAB软件的基本操作。
(2)了解数字图像处理的基本概念和常用算法。
(3)能够运用MATLAB实现图像处理的基本操作和算法。
二、实验内容与步骤1. 实验内容(1)图像读取与显示。
(2)图像的基本运算(如加、减、乘、除等)。
(3)图像的滤波处理。
(4)图像的边缘检测。
(5)图像的分割与标记。
2. 实验步骤(1)打开MATLAB软件,新建一个脚本文件。
(2)导入所需图像,使用imread()函数读取图像,使用imshow()函数显示图像。
(3)进行图像的基本运算,如加、减、乘、除等,使用imadd()、imsub()、imdiv()、imconcat()等函数。
(4)对图像进行滤波处理,如使用均值滤波、中值滤波等,使用imfilter()函数。
(5)进行图像的边缘检测,如使用Sobel算子、Canny算子等,使用edge()函数。
(6)对图像进行分割与标记,如使用区域生长、阈值分割等方法,使用watershed()函数。
(7)对实验结果进行分析和讨论,总结实验心得。
三、实验注意事项1. 严格遵循实验步骤,确保实验的正确进行。
2. 合理选择参数,如滤波器的尺寸、阈值等。
3. 注意图像数据类型的转换,如浮点型、整型等。
4. 保持实验环境的整洁,避免误操作。
四、实验评价1. 评价内容(1)实验步骤的完整性。
(2)实验结果的正确性。
2. 评价标准(1)实验步骤完整,得分20分。
(2)实验结果正确,得分30分。
总分100分。
五、实验拓展1. 研究不同滤波器对图像滤波效果的影响。
2. 尝试使用其他图像分割算法,如基于梯度的分割方法、聚类分割方法等。
3. 探索图像处理在其他领域的应用,如计算机视觉、医学影像处理等。
六、实验一:图像读取与显示1. 实验目的掌握MATLAB中图像的读取和显示方法,熟悉图像处理的基本界面。
图像的基本运算
![图像的基本运算](https://img.taocdn.com/s3/m/d03d151e55270722192ef747.png)
图像的基本运算图像的基本运算包括以下几类:图像的点运算;图像的代数运算;图像的几何运算;图像的逻辑运算和图像的插值。
下面将依次介绍这几种运算。
一、点运算点运算是指对一幅图像中每个像素点的灰度值进行计算的方法。
点运算通过对图像中每个像素值进行计算,改善图像显示效果的操作,也称对比度增强,对比度拉伸,灰度变换,可以表示为B(x,y)=f(A(x,y))。
这是一种像素的逐点运算,是原始图像与目标图像之间的映射关系,不改变图像像素的空间关系。
可以提高图像的对比度,增加轮廓线等。
可分为:(1)线性点运算:输出灰度级与输入灰度级之间呈线性关系。
(2)非线性点运算:输出灰度级与输入灰度级之间呈非线性关系。
二、代数运算代数运算是指将两幅或多幅图像通过对应像素之间的加、减、乘、除运算得到输出图像的方法。
对于相加和相乘的情形,可能不止有两幅图像参加运算。
如果记A(x,y)和B(x,y)为输入图像,C(x,y)为输出图像。
那么,四种代数运算的数学表达式如下:(1)C(x,y)=A(x,y)+B(x,y)加法运算可以实现以下两个目的:1.1去除叠加性随机噪声;1.2生成图像叠加效果。
(2)C(x,y)=A(x,y)-B(x,y)减法运算可以实现以下两个目的:2.1消除背景影响;2.2检查同一场景两幅图像之间的变化。
(3)C(x,y)=A(x,y)*B(x,y)乘法运算可以实现以下两个目的:3.1图像的局部显示;3.2图像的局部增强。
(4)C(x,y)=A(x,y)/B(x,y)乘法运算可以实现以下三个目的:4.1遥感图像的处理中;4.2消除图像数字化设备随空间变化的影响。
4.3校正成像设备的非线性影响。
还可以通过适当的组合形成涉及几幅图像的复合代数运算。
三、几何运算几何运算就是改变图像中物体对象(像素)之间的空间关系。
从变换性质来分,几何变换可以分为图像的位置变换(平移、镜像、旋转)、形状变换(放大、缩小)以及图像的复合变换等。
图像的基本运算
![图像的基本运算](https://img.taocdn.com/s3/m/430d8366312b3169a551a410.png)
图像的基本运算图像的基本运算包括以下几类:图像的点运算;图像的代数运算;图像的几何运算;图像的逻辑运算和图像的插值。
下面将依次介绍这几种运算。
一、点运算点运算是指对一幅图像中每个像素点的灰度值进行计算的方法。
点运算通过对图像中每个像素值进行计算,改善图像显示效果的操作,也称对比度增强,对比度拉伸,灰度变换,可以表示为B(x,y)=f(A(x,y))。
这是一种像素的逐点运算,是原始图像与目标图像之间的映射关系,不改变图像像素的空间关系。
可以提高图像的对比度,增加轮廓线等。
可分为:(1)线性点运算:输出灰度级与输入灰度级之间呈线性关系。
(2)非线性点运算:输出灰度级与输入灰度级之间呈非线性关系。
二、代数运算代数运算是指将两幅或多幅图像通过对应像素之间的加、减、乘、除运算得到输出图像的方法。
对于相加和相乘的情形,可能不止有两幅图像参加运算。
如果记A(x,y)和B(x,y)为输入图像,C(x,y)为输出图像。
那么,四种代数运算的数学表达式如下:(1) C(x,y)=A(x,y)+B(x,y)加法运算可以实现以下两个目的:1.1去除叠加性随机噪声;1.2生成图像叠加效果。
(2) C(x,y)=A(x,y)-B(x,y)减法运算可以实现以下两个目的:2.1消除背景影响;2.2检查同一场景两幅图像之间的变化。
(3) C(x,y)=A(x,y)*B(x,y)乘法运算可以实现以下两个目的:3.1图像的局部显示;3.2图像的局部增强。
(4) C(x,y)=A(x,y)/B(x,y)乘法运算可以实现以下三个目的:4.1遥感图像的处理中;4.2消除图像数字化设备随空间变化的影响。
4.3校正成像设备的非线性影响。
还可以通过适当的组合形成涉及几幅图像的复合代数运算。
三、几何运算几何运算就是改变图像中物体对象(像素)之间的空间关系。
从变换性质来分,几何变换可以分为图像的位置变换(平移、镜像、旋转)、形状变换(放大、缩小)以及图像的复合变换等。
matlab实验 图像的基本运算
![matlab实验 图像的基本运算](https://img.taocdn.com/s3/m/09fc71e3aeaad1f346933f39.png)
实验四、图像的基本运算1(1)选择一幅图像lena8.jpg,设置输入/输出变换的灰度级范围,a=0.3,b=0.6,c=0.1,d=0.9 (2)设置非线性扩展函数的参数c=2(3)采用灰度倒置变换函数s=255-r进行图像变换(4)设置二值化图像的阈值,分别为level=0.4,level=0.7程序如下I=imread('C:\lena8.jpg');figure;subplot(2,3,1);imshow(I);title('原图');J=imadjust(I,[0.3;0.6],[0.1;0.9]); %设置灰度变换的范围subplot(2,3,2);imshow(J);title('线性扩展');I1=double(I); %将图像转换为double类型I2=I1/255; %归一化此图像C=2;K=C*log(1+I2); %求图像的对数变换subplot(2,3,3);imshow(K);title('非线性扩展');M=im2bw(I,0.5);M=~M;%M=255-I; %将此图像取反%Figuresubplot(2,3,4);imshow(M);title('灰度倒置');N1=im2bw(I,0.4); %将此图像二值化,阈值为0.4N2=im2bw(I,0.7); %将此图像二值化,阈值为0.7subplot(2,3,5);imshow(N1);title('二值化阈值0.4');subplot(2,3,6);imshow(N2);title('二值化阈值0.7');2 选取两幅大小一样的灰度图像hough.bmp和rice.bmp,将两幅图像进行加法运算。
程序如下I=imread('C:\hough.bmp');%I=rgb2gray(I);J=imread('C:\rice.bmp');I=im2double(I); %将图像转换成double型J=im2double(J);K=I+0.3*J; %两幅图像相加subplot(1,3,1);imshow(I);title('物图');subplot(1,3,2);imshow(J);title('背景图');subplot(1,3,3);imshow(K);title('相加后的图');imwrite(K,'C:\lena1.jpg');3 选取一幅混合图像,如相加得到的图像lenal.jpg,将混合图像与背景图像做减法运算。
实验报告二 Matlab图像代数运算和几何变换
![实验报告二 Matlab图像代数运算和几何变换](https://img.taocdn.com/s3/m/1e81100790c69ec3d5bb753a.png)
实验二Matlab图像代数运算和几何变换一、实验目的1、掌握不同图像类型的转换2、掌握图像代数运算和几何变换的方法;3、掌握灰度级插值法的实验方法。
二、实验内容1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither)(p69-73);2、练习课本6.3.2(p139-p143)图像代数运算的内容;3、练习图像平移 (p148),图像比例变换(p153),图像旋转(p156),图像镜像变换(p158),图像切割(p160)Matlab实现例题;4、练习灰度级插值法(p171)。
三、实验步骤和结果1、练习图像类型转换的相关命令(ind2rgb,mat2gray,grayslice,rgb2gray,rgb2ind,im2bw,ind2gray,dither)(1)mat2gray()函数I=imread('rice.png');>> J=filter2(fspecial('sobel'),I);>> K=mat2gray(J);>> imshow(I);>> figure,imshow(K)(2)、grayslice()函数>> I=imread('snowflakes.png');>> X=grayslice(I,16);>> imview(I)imview(X,jet(16))(3)、rgb2ind()函数> RGB=imread('peppers.png');>> imshow(RGB);>> figure,imshow(RGB)>> [X,map]=rgb2ind(RGB,128);>> figure,imshow(X,map) (4)、im2bw()函数>> load trees>> BW=im2bw(X,map,0.4);>> figure,imshow(X,map)>> figure,imshow(BW)(5)、ind2gray()函数load trees>> I=ind2gray(X,map);>> figure,imshow(X,map)>> figure,imshow(I)(6)、dither()函数>> RGB=imread('peppers.png'); >> [X,map]=rgb2ind(RGB,256); >> I=dither(RGB,map);>> BW=dither(I);>> imshow(RGB,map);>> figure,imshow(RGB,map); >> figure,imshow(BW)Result:(1)转换后图像(2)索引色图像(3)索引色图像(4)索引色图像(4)二值化后的图像(5)转换后的灰度图像(6)索引色图像(6)抖动转换图像2、练习课本6.3.2(p139-p143)图像代数运算的内容(1)加法运算I=imread('rice.png');>> figure(1),imshow(I,[])>> I2=imread('cameraman.tif')>> figure(2),imshow(I2,[])>> K=imadd(I,I2,'uint16');>> figure(3),imshow(K,[])>> I=imread('lena.bmp');>> I2=imadd(I,50);>> figure(1),imshow(I)>> figure(2),imshow(I2)(2)、减法运算>> I=imread('rice.png'); >> I2=imread('cameraman.tif'); >> I3=imsubtract(I,I2);>> figure,imview(I3)(3)乘法&除法运算>> I=imread('lena.bmp');>> I2=immultiply(I,0.5);>> figure,imshow(I)>> figure,imshow(I2)>> I3=immultiply(I,1.5);>> figure,imshow(I3)>> I4=imdivide(I,0.5);>> figure,imshow(I4)>> I5=imdivide(I,1);>> figure,imshow(I5)Result:(1)加法运算后的图像(1)加入常数后的图像(2)减法运算(3)乘以0.5后的图像乘以1后的图像除以0.5后的图像除以1后的图像3、练习图像平移 (p148),图像比例变换(p153),图像旋转(p156),图像镜像变换(p158),图像切割(p160)Matlab实现例题;(a)图像平移>> I=imread('trees.tif');>> figure,imshow(I)>> I=double(I);>> I_movesult=zeros(size(I));>> H=size(I);>> Move_x=50;>> Move_y=50;>>I_movesult(Move_x+1:H(1),Move_y+1:H(2))=I(1:H(1)-Move_x,1:H(2)-Move_y);>> figure,imshow(uint8(I_movesult))(b)图像比例变换J=imread('trees.tif');>> figure,imshow(J);>> X1=imresize(J,2);>> X2=imresize(J,0.5);>> figure,imshow(X1)>> figure,imshow(X2)(C)图像旋转变换>> I=imread('peppers.png');>> figure,imshow(I)>> X1=imrotate(I,30,'nearest');>> figure,imshow(uint8(X1))>> X2=imrotate(I,45,'nearest');>> figure,imshow(uint8(X2))>> X3=imrotate(I,60,'nearest');>> figure,imshow(uint8(X3))>> X4=imrotate(I,90,'nearest');>> figure,imshow(uint8(X4))(d)图像镜像变换>> I=imread('forest.tif');>> I=double(I);>> figure,imshow(uint8(I));>> H=size(I);>> figure(2),>> I2(1:H(1),1:H(2))=I(H(1):-1:1,1:H(2));>> imshow(uint8(I2));>> figure,imshow(uint8(I2));>> I3(1:H(1),1:H(2))=I(1:H(1),H(2):-1:1);>> figure,imshow(uint8(I3));>> I4(1:H(1),1:H(2))=I(H(1):-1:1,H(2):-1:1);>> figure,imshow(uint8(I4));(e)图像切割>> I1=imread('peppers.png');>> I2=imcrop(I1,[75 68 220 100]);>> imview(I2)I3=imcrop(I1,[30 40 120 100]);>> imview(I3)(a)平移后的图像(b)放大后图像(b)缩小后的图像(c)旋转30°后的图像旋转45°后的图像旋转60°后的图像旋转90°后的图像(d)原始图像垂直镜像水平镜像对角镜像(e)原始图像一次切割后图像二次切割后图像4、练习灰度级插值法(p171)>> I=imread('lena.bmp');>> X1=imresize(I,1);>> X2=imresize(I,1,'bilinear');>> X3=imresize(I,1,'bicubic');>> figure,imshow(X1)>> figure,imshow(X2)>> figure,imshow(X3)最近邻差值法双线性插值法三次插值法四、实验体会在本次实验中掌握不同图像类型的转换,掌握了转换函数及其语法格式,如ind2rgb()函数将索引图像转换成真彩色。
(数字图像处理)第三章图像的基本运算
![(数字图像处理)第三章图像的基本运算](https://img.taocdn.com/s3/m/03f9f798b04e852458fb770bf78a6529647d3529.png)
点运算的应用场景
点运算在图像处理中具有广泛的应用,例如在医学影像处理中,可以通过点运算来 调整图像的对比度和亮度,提高医学影像的清晰度和可读性。
在遥感图像处理中,点运算可以用于校正和增强遥感图像,提高遥感数据的准确性 和可靠性。
图像基本运算的重要性
01
图像基本运算是图像处理的基础 ,是实现复杂图像处理算法的基 石。
02
掌握基本运算有助于深入理解图 像处理原理,提高图像处理技能 。
02
图像的点运算
线性点运算
线性点运算是指通过线性变换对图像的像素值进行 操作,常见的线性点运算包括加法、减法、乘法和 除法等。
线性点运算可以用于增强图像的对比度、调整图像 的亮度、改变图像的色彩等。
总结词
旋转操作用于将图像围绕一个点旋转一定角度,同时改变像 素的位置。
详细描述
旋转操作用于将图像中的像素按照指定的角度进行旋转,同 时像素值保持不变。这种操作常用于纠正倾斜的图像、实现 特定视角的观察等。
图像的剪切
总结词
剪切操作用于从图像中删除一部分区域,只保留所需部分。
详细描述
剪切操作用于从图像中删除指定的区域,只保留所需的像素部分。这种操作常 用于裁剪照片、去除背景等。剪切操作可以快速有效地去除不需要的区域,突 出显示所需的细节或主题。
图像的缩放
总结词
缩放操作用于改变图像的大小,可以通过放大或缩小像素值来实 现。
详细描述
缩放操作用于改变图像的尺寸,可以通过放大或缩小像素值来实 现。放大图像时,像素值会被插值计算以填充新的像素空间;缩 小图像时,像素值可能会被平均或选择性地丢弃。这种操作常用 于调整图像大小、视窗变换等。
第3章 图像的基本运算
![第3章 图像的基本运算](https://img.taocdn.com/s3/m/cfb00e375901020207409c8d.png)
3.3 代数运算与逻辑运算
• 代数运算
– 代数运算是指对两幅输入图像进行点对点的加、减、 乘、除运算而得到目标图像的运算。另外,还可以通 过适当的组合,形成涉及几幅图像的复合代数运算方 程。
• 逻辑运算
– 常见的图像逻辑运算有与、或、非等,其主要针对二 值图像,在进行图像理解与分析领域比较有用。运用 这种方法可以为图像提供模板,与其他运算方法结合 起来可以获得某种特殊的效果。
3.3.2 减法运算
• 减法运算
– 图像相减常用于检测变化及运动的物体,图像相减运 算又称为图像差分运算。
– 将同一景物在不同时间拍摄的图像或同一景物在不同 波段的图像相减,这就是差影法,实际上就是图像的 减法运算。差值图像提供了图像间的差值信息,能用 于指导动态监测、运动目标的检测和跟踪、图像背景 的消除及目标识别等。差影技术还可以用于消除图像 背景,用于混合图像的分离。
3.3.2 减法运算
3.3.3 乘法运算
• 乘法运算
– 简单的乘法运算可用来改变图像的灰度级,实现灰度 级变换。乘法运算也可用来遮住图像的某些部分,其 典型应用是用于获得掩膜图像。对于需要保留下来的 区域,掩膜图像的值置为1,而在需要被抑制掉的区域, 掩膜图像的值置为0。此外由于时域的卷积和相关运算 与频域的乘积运算对应,因此乘法运算有时也被用来 作为一种技巧来实现卷积或相关处理。
如果对M幅图像做平均,可得:
功率信噪比为:
由于噪声具有如下特性:
可以证明:
因此,对M幅图像进行平均,使图像中每 一点的功率信噪比提高了M倍。而幅度信噪比 是功率信噪比的平方根,所以,幅度信噪比也 随着被平均图像数目的增加而增大。
3.3.1 加法运算
平均去噪示例说明:
图像的基本运算(数字图像处理)
![图像的基本运算(数字图像处理)](https://img.taocdn.com/s3/m/27c530ae5fbfc77da269b190.png)
g(x, y) = f(x, y) | h(x, y) 应用1:图像的合并
应用2:模板运算,提前感兴趣的图像区域
15
图像逻辑运算(Logical operations)
• 逻辑异或运算
g(x, y) = f(x, y) ⊕ h(x, y) 应用1:获得相交图像
16
图像几何运算(Geometric operations)
将给定的图像在 x 方向和 y 方向按相同的比例 a 缩放,从而得到一幅新的图像。
缩放前后的两点 A0(x0, y0)、A1(x1, y1)之间的关系为
x1
aபைடு நூலகம்0 0x 0
y
1
0
a
0
y
0
1
0
0
1
1
x1 ax0 y1 ay 0
• 图像的旋转
图像旋转后,由于图像的坐标值必须是整数,会引起图像部分像素点的改变,此时图像的 大小也会发生一些改变。
若图像旋转45度,则变换关系为
x 0.707x0 0.707y0
y
0.707x0
0.707y0
原始图像的点(1, 1),旋转后为小数,经舍入后为(1, 0),产生了位置误差。因此,图像旋转 后,可能会发生一些细微变化。
2
本章内容
点运算
对一幅图像中每个像素点的灰度值进行运算的方法。
• 代数、逻辑运算
将两幅或多幅图像通过对应像素间的加、减、乘、除运算或逻辑与、或、非运算 得到输出图像的方法。
几何运算
改变图像图像中物体对象(像素)之间的空间关系。可分为位置变换、形状变换及复 合变换。
实验二图像运算
![实验二图像运算](https://img.taocdn.com/s3/m/fbdebc2717fc700abb68a98271fe910ef02dae5b.png)
实验二图像运算实验二图像运算一、实验目的1.熟悉图像点运算和代数运算的实现方法2.了解图像几何运算的简单应用3.了解图像的邻域操作4.掌握示例程序中各函数的作用及运用方法二、实验内容1. 图像点运算读入图像‘rice.png’,通过图像点运算改变对比度。
rice=imread('rice.png');subplot(131),imshow(rice)I=double(rice); %转换为双精度类型J=I*0.43+60;rice2=uint8(J); %转换为uint8subplot(132),imshow(rice2)J=I*1.5-60;rice3=uint8(J); %转换为uint8subplot(133),imshow(rice3)2. 图像的代数运算图像加法运算I=imread('rice.png');imshow(I)J=imread('cameraman.tif');figure,imshow(J)K=imadd(I,J);figure,imshow(K)K2=imadd(I,J,'uint16');figure,imshow(K2,[])RGB=imread('flowers.tif');RGB2=imadd(RGB,50);imshow(RGB)figure,imshow(RGB2)RGB3=imadd(RGB,100);figure,imshow(RGB3)图像减法运算I=imread('rice.png');imshow(I)background = imopen(I,strel('disk',15)); %估计背景图像figure, imshow(background);I2=imsubtract(I,background); %从原始图像中减去背景图像figure, imshow(I2)图像乘法运算I=imread('moon.tif');J=immultiply(I,1.2);K=immultiply(I,0.5);imshow(I)figure,imshow(J)figure,imshow(K)3. 图像的几何运算在matlab环境中,程序首先读取图像,然后调用图像缩放函数,设置相关参数,再输出处理后的图像。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图像基本运算
通过对图像的四则运算了结图像的不同变化过程,对软件的进一步使用也有了更加深刻的认识。
一、实验目的
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)
三、实验步骤
1.图像的加法运算
在MATLAB中,如果要进行两幅图像的加法,或者给一幅图像加上一个常数,可以调用imadd函数来实现。
imadd函数将某一幅输入图像的每一个像素值与另一幅图像相应的像素值相加,返回相应的像素值之和作为输出图像。
imadd函数的调用格式如下:
Z = imadd(X,Y)
首先读入两幅图像
>>a=imread('第二个原图jpg');
>>b=imread('第二个原图2.jpg') 通过一个加法操作:
>> c=imadd(a,b);
给图像的每一个像素加上一个常数可以使图像的亮度增加。
2.图像的减法运算
在MATLAB中,使用imsubtract函数可以将一幅图像从另一幅图像中减去,或者从一幅图像中减去一个常数。
imsubtract函数将一幅输入图像的像素值从另一幅输入图像相应的像素值中减去,再将这个结果作为输出图像相应的像素值。
imsubtract函数的调用格式如下:
Z = imsubtract(X,Y);
读入一幅画后通过减法:
>>a3=imsubtract(a,50);
3. 图像的乘法运算
在MATLAB中,使用immultiply函数实现两幅图像的乘法。
immultiply函数将两幅图像相应的像素值进行元素对元素的乘法操作(MATLAB点乘),并将乘法的运算结果作为输出图形相应的像素值。
immulitply函数的调用格式如下:Z = immulitply(X,Y) 读入一幅图后通过乘法操作:
>> a=imread('cameraman.tif');
>> b=immultiply(a,1.5);
4.图像的除法运算
在MATLAB中使用imdivide函数进行两幅图像的除法。
imdivide函数对两幅输入图像的所有相应像素执行元素对元素的除法操作(点除),并将得到的结果作为输出图像的相应像素值。
imdivide函数的调用格式如下:
Z = imdivide(X,Y) 读入一幅图后通过除法操作。
四、实验结果
五、实验总结。