当前位置:文档之家› 数字图像处理之几何变换

数字图像处理之几何变换

数字图像处理之几何变换
数字图像处理之几何变换

结课设计(论文)

2008 级通信工程专业0813072 班级

课程数字图像处理

姓名李瑞芳学号081307214 指导教师陈宇职称讲师

二О一一年十月三十

基于VB的数字图像的几何变换

1 数字图像的发展

数字图像处理(Digital Image Processing)又称为计算机图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。数字图像处理最早出现于20世纪50年代,当时的电子计算机已经发展到一定水平,人们开始利用计算机来处理图形和图像信息。数字图像处理作为一门学科大约形成于20世纪60年代初期。早期的图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。图像处理中,输入的是质量低的图像,输出的是改善质量后的图像,常用的图像处理方法有图像增强、复原、编码、压缩等。

首次获得实际成功应用的是美国喷气推进实验室(JPL)。他们对航天探测器徘徊者7号在1964年发回的几千张月球照片使用了图像处理技术,如几何校正、灰度变换、去除噪声等方法进行处理,并考虑了太阳位置和月球环境的影响,由计算机成功地绘制出月球表面地图,获得了巨大的成功。随着图像处理技术的深入发展,从70年代中期开始,随着计算机技术和人工智能、思维科学研究的迅速发展,数字图像处理向更高、更深层次发展。人们已开始研究如何用计算机系统解释图像,实现类似人类视觉系统理解外部世界,这被称为图像理解或计算机视觉。很多国家,特别是发达国家投入更多的人力、物力到这项研究,取得了不少重要的研究成果。其中代表性的成果是70年代末MIT的Marr提出的视觉计算理论,这个理论成为计算机视觉领域其后十多年的主导思想。图像理解虽然在理论方法研究上已取得不小的进展,但它本身是一个比较难的研究领域,存在不少困难,因人类本身对自己的视觉过程还了解甚少,因此计算机视觉是一个有待人们进一步探索的新领域。

2 系统总体分析

本设计的主要工具是Microsoft Visual Basic 6.0 中文版。主要用于实现彩色(或黑白)图像的放大,缩小,任意旋转,镜像和图像移动等几何变换。

2.1图像的任意旋转

一般图像的旋转是以图像的中心为原点,旋转一定的角度,也就是将图像上的所有像素都旋转一个相同的角度。旋转后图像的的大小一般会改变,即可以把转出显示区域的图像截去,或者扩大图像范围来显示所有的图像。图像的旋转分为正变换和逆变换。它们有所不同,逆变换是对旋转后的图像所对应的大小范围逐次点循环,通过逆变换的公式求出对应于源图像中的像素点和像素值,这样旋转后的图像就不会出现空洞点,也就避免了旋转后的插值运算,从一定程度上提高了运算速度。本次设计我们采用正变换,并用插值处理补充空洞点。集体步骤如下:

(1)打开Vb新建一个工程如图所示:

(2)选中“打开”会出现如图所示:

(3)在左侧的部件栏里选中,拖到Form1 里按照布局以此拖入两次,分别为picture1,picture2,并修改属性栏里的AutoRedraw和AutoSize均为true。将图像1属性栏里的Scalemode改为3—Pixel.按照相同的方法将

部件依次拖入到窗口中,并在属性栏里分别修改

,,。

(4)设置完成后,双击进入程序编写窗口,把程序完整的写入,另外添加声明

Option Explicit

Const Pi = 3.14

源程序如下:源图如上:

Dim x As Integer, y As Integer '点在Picture1中的坐标

Dim X1 As Integer, Y1 As Integer '过渡坐标

Dim X2 As Double, Y2 As Double '过渡坐标

Dim X3 As Double, Y3 As Double '点经过旋转后在Picture2中的坐标Dim angle As Double '旋转的角度

Dim radian As Double '旋转的弧度

angle = Text1.Text

'获得旋转的角度

radian = angle * Pi / 180

'获得旋转的弧度

Picture2.Cls

For x = 0 To Picture1.Width

For y = 0 To Picture1.Height

X1 = x - Picture1.Width \ 2

Y1 = y - Picture1.Height \ 2

'将坐标轴原点移动到Picture1的中心后原来坐标为(x,y)

'的点的新坐标为(X1,Y1)

X2 = X1 * Cos(radian) + Y1 * Sin(radian)

'获得在更改坐标原点后旋转后该点的X坐标

Y2 = Y1 * Cos(radian) - X1 * Sin(radian)

'获得在更改坐标原点后旋转后该点的Y坐标

X3 = X2 + Picture1.Width \ 2

'获得恢复坐标原点后旋转后的X坐标

Y3 = Y2 + Picture1.Height \ 2

If X3 > 0 And X3 < Picture2.Width - 1 And Y3 > 0 And Y3 < Picture2.Height - 1 Then Picture2.PSet (X3, Y3), Picture1.Point(x, y) '将Picture1中(x,y)点复制到Picture2的(X3,Y3)点

Picture2.PSet (X4, Y4), Picture1.Point(x, y)

End If

Next y

Next x

!(5) 运行时会发现当旋转角度为90,180,270时,图像旋转时比较理想,旋转其他角度时的会出现白色空洞点,如图所示旋转(以50度为例):

经过修改后的程序如下:

Dim X2 As Double, Y2 As Double '过渡坐标

Dim X3 As Double, Y3 As Double '点经过旋转后在Picture2中的坐标

Dim X4 As Double, Y4 As Double

Dim X5 As Double, Y5 As Double

Dim angle As Double '旋转的角度

Dim radian As Double '旋转的弧度

angle = Text1.Text

'获得旋转的角度

radian = angle * Pi / 180

'获得旋转的弧度

Picture2.Cls

For x = 0 To Picture1.Width

For y = 0 To Picture1.Height

X1 = x - Picture1.Width \ 2

Y1 = y - Picture1.Height \ 2

'将坐标轴原点移动到Picture1的中心后原来坐标为(x,y)

'的点的新坐标为(X1,Y1)

X2 = X1 * Cos(radian) + Y1 * Sin(radian)

'获得在更改坐标原点后旋转后该点的X坐标

Y2 = Y1 * Cos(radian) - X1 * Sin(radian)

'获得在更改坐标原点后旋转后该点的Y坐标

X3 = X2 + Picture1.Width \ 2

Y3 = Y2 + Picture1.Height \ 2

'获得恢复坐标原点后旋转后的Y坐标

X4 = X2 + Picture1.Width \ 2 + 1

Y4 = Y2 + Picture1.Height \ 2

X5 = X2 + Picture1.Width \ 2

Y5 = Y2 + Picture1.Height \ 2 + 1

If X3 > 0 And X3 < Picture2.Width - 1 And Y3 > 0 And Y3 < Picture2.Height - 1 And X4 > 0 And X4 < Picture2.Width - 1 And Y4 > 0 And Y4 < Picture2.Height - 1 And X5 > 0 And X5 < Picture2.Width - 1 And Y5 > 0 And Y5 < Picture2.Height - 1 Then

Picture2.PSet (X3, Y3), Picture1.Point(x, y) '将Picture1中(x,y)点复制到Picture2的(X3,Y3)点Picture2.PSet (X4, Y4), Picture1.Point(x, y) '将Picture1中(x,y)点复制到Picture2的(X4,Y4)点Picture2.PSet (X5, Y5), Picture1.Point(x, y) '将Picture1中(x,y)点复制到Picture2的(X5,Y5)点End If

Next y

Next x

旋转50度时:可看到旋转后的图像质量较之前有很大改善

2.2图像的放大

图像放大的正变换是对源图像进行循环,通过对源图的每个像素点的位置放大k倍来得到放大后的新图像的像素点位置,并把原先像素点上的颜色值赋给它。

具体步骤如同2.1中(1)----(3)的步骤将Form中内容设置如下

添加部件如下:

主要程序如下(将图像放大2倍或是4倍):If flag = 2 Then

'将图像放大2倍

Picture2.Width = Picture1.Width * 2

Picture2.Height = Picture1.Height * 2

For i = 0 To Picture2.Width * 2 - 1 Step 2

For j = 0 To Picture2.Height * 2 - 1 Step 2

c = Picture1.Point(i / 2, j / 2)

Picture2.PSet (i, j), c

Picture2.PSet (i + 1, j), c

Picture2.PSet (i, j + 1), c

Picture2.PSet (i + 1, j + 1), c

Next

Next

ElseIf flag = 4 Then

'将图像放大4倍

Picture2.Width = Picture1.Width * 4

Picture2.Height = Picture1.Height * 4

For i = 0 To Picture2.Width * 4 - 3 Step 4

For j = 0 To Picture2.Height * 4 - 3 Step 4

c = Picture1.Point(i / 4, j / 4)

Picture2.PSet (i, j), c

Picture2.PSet (i, j + 1), c

Picture2.PSet (i, j + 2), c

Picture2.PSet (i, j + 3), c

Picture2.PSet (i + 1, j), c

Picture2.PSet (i + 1, j + 1), c

Picture2.PSet (i + 1, j + 2), c

Picture2.PSet (i + 1, j + 3), c

Picture2.PSet (i + 2, j), c

Picture2.PSet (i + 2, j + 1), c

Picture2.PSet (i + 2, j + 2), c

Picture2.PSet (i + 2, j + 3), c

Picture2.PSet (i + 3, j), c

Picture2.PSet (i + 3, j + 1), c

Picture2.PSet (i + 3, j + 2), c

Picture2.PSet (i + 3, j + 3), c

Next

Next

ElseIf flag = 3 Then

'利用PictureBox控件放大图像

temp = InputBox("请输入放大倍数", "自定义", 1.5)

If temp <> "" And temp > 0 Then

Picture2.Width = Picture1.Width * temp

Picture2.Height = Picture1.Height * temp

Picture2.PaintPicture Picture1.Picture, 0, 0, Picture2.Width, Picture2.Height, _

0, 0, Picture1.Width, Picture1.Height Else

MsgBox "输入倍数不符合要求", vbExclamation, "错误"

End If

End If

Form Load 内的程序如下:

Form1.Left = 0

Form1.Top = 0

Form1.Width = Screen.Width

Form1.Height = Screen.Height

'为Picture1添加图像并初始化flag变量

Picture1.Picture = LoadPicture(App.Path + "\我.bmp")

flag = 2

在相应的位置上的程序如下:

Private Sub Option1_Click()

If Option1.Value = True Then flag = 2

End Sub

Private Sub Option2_Click()

If Option2.Value = True Then flag = 4

End Sub

Private Sub Option3_Click()

If Option3.Value = True Then flag = 3

End Sub

将属性设置好,即可实现图像的放大2倍或4倍。

2.3图像的缩小

图像缩小的正变换是对源图像进行循环,通过对源图的每个像素点的位置缩小1/k倍来得到缩小后的新图像的像素点位置,并把原先像素点上的颜色值赋给它。

同2.1中(1)----(3)的步骤将Form中内容设置如下

相关程序参见源文件。

2.4图像的镜像

图像的镜像变换分为两种:水平镜像和垂直镜像。图像的镜像变换不改变图像的形状。图像的镜像操作是以源图像的垂直中轴线为中心,将图像分为左右两部分进行对称变换;图像的垂直镜像操作是以源图像的水平中轴线为中心,将图像分为上下两部分进行对称变换。如上述方法

将Form1设置为:

程序如下:

Set pic = Picture1.Picture

Select Case Index

Case 0

bHort = Not bHort

Case 1

bVert = Not bVert

End Select

If bHort And bVert Then

Picture1.PaintPicture pic, Picture1.Width, Picture1.Height, Picture1.Width * -1, Picture1.Height * -1

ElseIf bHort And Not bVert Then

Picture1.PaintPicture pic, Picture1.Width, 0, Picture1.Width * -1, Picture1.Height ElseIf Not bHort And bVert Then

Picture1.PaintPicture pic, 0, Picture1.Height, Picture1.Width, Picture1.Height * -1 Else

Picture1.PaintPicture pic, 0, 0

End If

垂直镜像图:水平镜像图:

2.5图像的平移

图像的平移是将一幅图像中所有的点都按照指定的平移量在水平,垂直方向移动,平移后的图像和源图像相同。图像平移变换有两种不同的方法,一种是图像平移的正变换,通过对源图的每个像素点进行变换来得到平移后的新图像的像素点位置,并把原先像素点上的颜色值赋给它;另外一种是图像的逆变换,对平移后的新图像做循环,在新图像的每个像素的位置上填上源图像相对应的位置的颜色。

将Form设置为如图所示:

依次写入程序:

(也可以根据需要移动相应的位置)

CommonDialog1.ShowOpen

Picture1.Picture = LoadPicture(CommonDialog1.FileName)

End Sub

Private Sub Command3_Click()

End ‘用于退出

End Sub

Private Sub Command4_Click()

Picture2.Width = Picture1.Width

Picture2.Height = Picture1.Height

For i = 0 To Picture2.Width - 1

For j = 0 To Picture2.Height - 1

c = Picture1.Point(i, j)

x = i + 50: y = j-100

Picture2.PSet (x, y), c

Next

Next

End Sub

以向左移动50个单位,向下移动100个单位为例,移动后的效果图:

3 总结

通过这个数字图像处理的几何变换,加深了对VB的熟悉和运用。

其中图像旋转中,旋转的角度不是特殊角度(如90度,190度,270度等)时,处理的图像会明显出现一些空洞点,我们必须要对这些空洞点进行填充处理,否则图像旋转后的图像就不好了。这种操作叫插值处理,可采用行或列插值方法。最简单的插值方法是:图像旋转前某一点的像素点除了填充在旋转后坐标(X3,Y3)上外,还要填充在旋转后坐标为(X3+1,Y3)和(X3,Y3+1)的像素点上。

本文基于VB的数字图像处理的几何变换,包括图像的任意旋转,放大、缩小、镜像和移动,期间遇到了很多问题,在同学和老师的帮助下,最终还是完成了这个设计,虽然显得简单,但看到图像按照预期的那样显示时,还是很高兴的。

末了,非常感谢陈宇老师的指导!

数字图像处理实验四图像几何变换

课程名称数字图像处理与分析 实验序号实验4 实验项目图像几何变换 实验地点 实验学时实验类型 指导教师实验员 专业班级 学号姓名 2017年9月25日

成绩: 教 师 评 语

三、实验软硬件环境 装有MATLAB软件的电脑 四、实验过程(实验步骤、记录、数据、分析) 1、图片比例缩放 代码: I=imread('11.jpg'); J=imresize(I,1.25); J2=imresize(I,1.25,'bicubic'); imshow(I); figure,imshow(J); figure,imshow(J2); Y=imresize(I,[100150],'bilinear');%Y=imresize(I,[mrows ncols],method)---返回一个指定行列的图像。若行列比与原图不一致,输出图像将发生变形。 figure,imshow(Y) %nearest,bilinear,bicubic为最近邻插值、双线性插值、双三次插值方法。默认为nearest。 运行结果: 分析:由实验结果可知,实现了图片放大和缩小的效果。 2、图像旋转 代码:

J=imrotate(I,32,'bilinear');%J=imrotate(I,angle,method,’crop’)------crop用于剪切旋转后增大的图像部分,返回和原图大小一样的图象。 imshow(I); figure,imshow(J) 运行结果: 分析:由实验结果可知,实现了图片旋转的效果 3、图像剪切 代码:

J=imcrop(I); figure(1),imshow(I);title('yuantu'); figure(2),imshow(J);title('croptu') J1=imcrop(I,[604010090]);%对指定区域进行剪切操作figure(3),imshow(J1);title('croptu2'); 运行结果: 运行代码后,出现如下界面,选中要裁剪的区域,双击被选中的区域 出现以下界面:

图像的几何变换的两种实现(旋转、平移、放大、缩小)

面向对象程序设计 学号:2 学生所在学院:信息工程学院 学生姓名:邵丽群 任课教师:熊邦书 教师所在学院:信息工程学院

2013级 实现图像的几何变换 电子信息工程 信息工程学院 摘要:几何变换是最常见的图像处理手段,通过对变形的图像进行几何校正,可以得出准确的图像。常用的几何变换功能包括图像的平移、图像的镜像变换、图像的转置、图像的缩放、图像的旋转等等。目前数字图像处理的应用越来越广泛,已经渗透到工业、航空航天、军事等各个领域,在国民经济中发挥越来越大的作用。作为数字图像处理的一个重要部分,本文接受的工作是如何Visual C++编程工具设计一个完整的应用程序,实现经典的图像几何变换功能。程序大概分为两大部分:读写BMP图像,和数字图像的几何变换。即首先用Visual C++创建一个单文档应用程序框架,在实现任意BMP图像的读写,打印,以及剪贴板操作的基础上,完成经典的图像几何变换功能。图像几何变换的Visual C++编程实现,为校内课题的实现提供了一个实例。 关键字:图像处理;几何变换(图像的平移、缩放、转置、旋转和镜像变换);BMP图像;Visual C++

一、引言 图像几何变换是指用数学建模的方法来描述图像位置、大小、形状等变化的方法。在实际场景拍摄到的一幅图像,如果画面过大或过小,都需要进行缩小或放大。如果拍摄时景物与摄像头不成相互平行关系的时候,会发生一些几何畸变,例如会把一个正方形拍摄成一个梯形等。这就需要进行一定的畸变校正。在进行目标物的匹配时,需要对图像进行旋转、平移等处理。在进行三维景物显示时,需要进行三维到二维平面的投影建模。因此,图像几何变换是图像处理及分析的基础。 图像几何变换是计算机图像处理领域中的一个重要组成部分,也是值得深讨的一个重要课题。在图像几何变换中主要包括图像的放缩、图像的旋转、图像的移动、图像的镜像、图像的块操作等内容,几何变换不改变图像的像素值,只改变像素所在的几何位置。从广义上说,图像是自然界景物的客观反映,是人类认识世界和人类本身的重要源泉。图像对我们并不陌生。我们生活在一个信息时代,科学研究和统计表明,人类从外界获得的信息约有75%来自视觉系统,也就是从图像中获得的。所以对数字图像的处理便显得尤为重要了。 本文主要深讨了图像的几何变换(主要包括图像的平移、转置、缩放、旋转、镜像等)理论,并在此基础上用Visual C++实现的过程。 1.3.2研究方法 方法一: 利用Windows 本身就提供了一个API函数SetWorldTransForm来实现图片旋转、位移及其他变形,这个函数是对一个设备上下文DC进行操作,通过坐标转换来实现各种功能的。 方法二: 通过图像进行平移、旋转、转置、镜像、缩放后重新计算各点新像素完成几何变换。自定义一个图像处理的Cdibapi类,把一般处理图像时要用到的函数实现封装在这个类中,该类用于实现DIB对象的绘制,DIB对象调色板的创建,DIB对象的读取与存储,图像线性变换,图像灰度拉伸等。然后把在视类中实现图像平移,图像镜像,图像转置,图像缩放及图像旋转的函数调用和实现。

图形的几何变换

《计算机图形学》上机实习报告(一)——基本图形的生成 一、实习目的和要求 1、目的 深入学习三种基本几何变换的原理和方法,以及错切、镜像变换同上的类同性, 同时,在掌握基本几何变换的基础上理解组合变换的实现机制,掌握几何变换 的共同特点; 通过程序的编写和运行,学习基本几何变换在程序上的实现方法,这就要求掌 握结构体、一维数组的基本性质和使用方法; 进一步锻炼使用WIN-TC的熟练程度。 2、要求 实现平移变换、比例变换、旋转变换三种基本几何变换; 实现镜像变换、错切变换; 二、运行环境 本次上机在WIN-TC 中进行。 三、直线的生成——用Bresenham算法实现 1、算法基本原理 图形的几何变换一般是指对图形的几何信息经过变换后产生新的图形,图形几何变换既可以看作是坐标系不动而图形变动,变动后的图形在坐标系中的坐标值发生变化;出可以看作图形不动而坐标系变动,变动后的图形在新坐标系下具有新的坐标值。这两种情况本质上都是一样的,都是图形由新的坐标值表示,因此是新产生的图形。图形几何变换包括比例变换、对称变换、错切变换、旋转变换、平移变换及其复合变换。图形上所有的点在几何变换前后的坐标关系一般用解析几何方法可以求得,但这些几何关系用矩阵方法表示,运算更为方便。 图形基本几何变换是指比例变换、对称变换、错切变换、旋转变换和平移变换等。变换通过矩阵运算均可以表示为表示几何图形的点阵的一维矩阵和表示变换的三维矩阵相乘的形式,即P’=P·T,具体如下: 平移变换

比例变换 旋转变换 对称变换 对称于x轴对称于y轴对称于原点 对称于y=x 对称于y=-x 错切变换 沿x轴方向关于y的错切 沿y轴方向关于x的错切 2、对程序中变量的说明 3、源程序 4、运行结果 5、个人总结

数字图像处理复习题

第一章绪论 一.选择题 1. 一幅数字图像是:( ) A、一个观测系统 B、一个有许多像素排列而成的实体 C、一个2-D数组中的元素 D、一个3-D空间的场景。 提示:考虑图像和数字图像的定义 2. 半调输出技术可以:( ) A、改善图像的空间分辨率 B、改善图像的幅度分辨率 C、利用抖动技术实现 D、消除虚假轮廓现象。 提示:半调输出技术牺牲空间分辨率以提高幅度分辨率 3. 一幅256*256的图像,若灰度级数为16,则存储它所需的比特数是:( ) A、256K B、512K C、1M C、2M 提示:表达图像所需的比特数是图像的长乘宽再乘灰度级数对应的比特数。 4. 图像中虚假轮廓的出现就其本质而言是由于:( ) A、图像的灰度级数不够多造成的 B、图像的空间分辨率不够高造成 C、图像的灰度级数过多造成的 D、图像的空间分辨率过高造成。 提示:平滑区域内灰度应缓慢变化,但当图像的灰度级数不够多时会产生阶跃,图像中的虚假轮廓最易在平滑区域内产生。 5. 数字图像木刻画效果的出现是由于下列原因所产生的:() A、图像的幅度分辨率过小 B、图像的幅度分辨率过大 C、图像的空间分辨率过小 D、图像的空间分辨率过大 提示:图像中的木刻效果指图像中的灰度级数很少 6. 以下图像技术中属于图像处理技术的是:()(图像合成输入是数据,图像分类输出 是类别数据) A、图像编码 B、图像合成 C、图像增强 D、图像分类。 提示:对比较狭义的图像处理技术,输入输出都是图像。 解答:1.B 2.B 3.A 4.A 5.A 6.AC 二.简答题 1. 数字图像处理的主要研究内容包含很多方面,请列出并简述其中的4种。 2. 什么是图像识别与理解? 3. 简述数字图像处理的至少3种主要研究内容。 4. 简述数字图像处理的至少4种应用。 5. 简述图像几何变换与图像变换的区别。 解答: 1. ①图像数字化:将一幅图像以数字的形式表示。主要包括采样和量化两个过程。②图像增强:将一幅图像中的有用信息进行增强,同时对其无用信息进行抑制,提高图像的可观察性。③图像的几何变换:改变图像的大小或形状。④图像变换:通过数学映射的方法,将空域的图像信息转换到频域、时频域等空间上进行分析。⑤图像识别与理解:通过对图像中各种不同的物体特征进行定量化描述后,将其所期望获得的目标物进行提取,并且对所提取的目标物进行一定的定量分析。 2. 图像识别与理解是指通过对图像中各种不同的物体特征进行定量化描述后,将其所期望获得的目标物进行提取,并且对所提取的目标物进行一定的定量分析。比如要从一幅照片上确定是否包含某个犯罪分子的人脸信息,就需要先将照片上的人脸检测出来,进而将

图像的几何变换及其matlab实现

数字图像处理论文--图像的几何变换及其MATLAB实现 学院:理学院专业:信息与计算科学 班级:信计1012 姓名: 学号:任课老师: 集美大学理学院 二○一三年十一月二十八日

目录 摘要 (1) 一、何谓数字图像处理 (1) 二、数字图像几何变换简介 (1) 三、MATLAB图像处理工具介绍 (1) 四、图像几何变换的MATLAB实现 (2) 4.1图像几何变换的概述 (2) 4.2 图像的平移变换 (2) 4.3 图像的比例缩放 (4) 4.4 图像的镜像变换 (5) 4.5 图像的旋转变换 (7) 4.6 图像的剪取 (8) 五、图像几何变换的应用以及技术局限 (10) 参考文献 (10)

摘要:图像变换就是把图像从空间域转换到变换域(如频率域)的过程。图像变换可以使人们从另一角度来分析图像信号的特性,利用变换域中特有的性质,使图像处理过程更加简单、有效。图像变换是许多图像处理与分析技术的基础,而几何变换是图像变换中最基础也是应用最广泛的技术之一,本文基于MATLAB的图像处理工具,通过改变图像像素的空间位置或估算新空间位置上的像素值,从而实现图像的平移、缩放、旋转、镜像变换、图像插值等几何变换。 关键字:图像变换、几何变换、MATLAB 一、何谓数字图像处理 数字图像处理(Digital Image Processing),就是利用数字计算机或则其他数字硬件,对从图像信息转换而得到的电信号进行某些数学运算,以提高图像的实用性。例如从卫星图片中提取目标物的特征参数,三维立体断层图像的重建等。总的来说,数字图像处理包括点运算、几何处理、图像增强、图像复原、图像形态学处理、图像编码、图像重建、模式识别等。目前数字图像处理的应用越来越广泛,已经渗透到工业、医疗保健、航空航天、军事等各个领域,在国民经济中发挥越来越大的作用。 二、数字图像几何变换简介[3] 今天数字技术时代,我们身边接触到很多的数字图像,而对数字图像的处理往往会遇到需要对图像进行几何变换的一些问题。图像几何变换是图像显示技术中的一个重要组成部分。在图像几何变换中主要包括图像的缩放、旋转、移动、剪取等内容。无论照片、图画、书报、还是医学X光和卫星遥感图像等领域都会用到这些技术。通过图像的几何变换技术,可以显著提高图像处理效率和质量,为更进一步的图像处理奠定基础。 三、MATLAB图像处理工具介绍[1] MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值

计算机图形学-图形的几何变换

贵州大学实验报告 学院:计算机科学与技术专业:软件工程班级:软件132 姓名常伟学号1308060226 实验地点一教704 实验时间2016.5.9 指导教师李智实验成绩 实验项目名称试验四、图形的几何变换 实验目的1.掌握矢量运算。 2.熟练使用齐次坐标。 3.掌握采用齐次坐标进行几何变换。 实验要求1.理解几何图形变换的原理,编程实现图形的几何变换。 2.编程界面友好,实现变换的所有方式,包括平移、缩放、旋转、对称、错切以及基本变换基础上的组合变换。 3.几何变换使用矩阵进行运算。

实验原理 二维齐次坐标变换的矩阵的形式是 ? ? ? ? ? ? ? ? ? ? i h g f e d c b a 这个矩阵的每一个元素都是有特殊含义的。其中,? ? ? ? ? ? e d b a 可以对图形进行缩放、旋 转、对称和错切等变换;? ? ? ? ? ? f c 是对图形进行平移变换;[]h g是对图形作投影变换;[]i 则是对图形进行缩放变换。 下面给出几个基本变换的矩阵运算。 1.平移变换 ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? + + = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? ? ? 1 ) , ( 1 1 1 1 1 1 ' ' y x T y x y x t t t t t t y x y x y x y x 2.缩放变换 ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? 1 ) , ( 1 1 1 1 ' ' y x s s S y s x s y x s s y x y x y x y x 3.旋转矩阵 ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? + - = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?- = ? ? ? ? ? ? ? ? ? ? 1 ) ( 1 cos sin sin cos 1 1 cos sin sin cos 1 ' ' y x R y x y x y x y x θ θ θ θ θ θ θ θ θ 4.对称矩阵 ? ? ? ? ? ? ? ? ? ? + + = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? 1 1 1 1 ' ' ey dx by ax y x e d b a y x 对称变换其实只是a、b、d、e取0、1等特殊值产生的一些特殊效果。 5.错切变换 ? ? ? ? ? ? ? ? ? ? + + = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? 1 1 1 1 1 1 ' ' y dx by x y x d b y x

计算机图形学--图形几何变换实现

实验五 图形几何变换的实现 班级:信计二班 学号: :解川 分数: 一、实验目的 为了掌握理解二维、三维的数学知识、变换原理、变换种类、变换方法;进一步理解采用齐次坐标进行二维、三维变换的必要性;利用VC++语言实现二维、三维图形的基本变换与复合变换。 二、实验容 (1) 理解采用齐次坐标进行图形变换的必要性——变换的连续性,使复合变换 得以实现。 (2) 掌握二维、三维图形基本变换的原理及数学公式。 (3) 利用VC++语言实现二维、三维图形的基本变换、复合变换,在评不上显 示变换过程或变换结果。 三、实验步骤 (1) 预习教材关于二维、三维图形变换的原理与方法。 (2) 使用VC++语言实现某一种或几种基本变换。 (3) 调试、编译、运行程序。 四、原理分析 源程序分别实现了对二维图形进行的平移变换—基本变换;对三维图形进行的绕某一个坐标轴旋转变换以及相对于立方体中心的比例变换—复合变换。 三维几何变换: (1) 比例变换: []1111z y x =[]1z y x T 3D =[]1z y x ????? ?? ?? ???s n m l r j i h q f e d p c b q 局部比例变换: s T =? ? ??? ???? ???1000000000000j e a 其中a 、b 、j 分别为在x 、y 、z 方向的比例系数。

整体比例变换: s T =? ? ??? ???? ???s 000010000100001其中s 为在xyz 方向的等比例系数。S>1时,整体缩小;s<1时,整体放大。 (2) 旋转变换: 旋转变换的角度方向为(沿坐标轴的反方向看去,各轴按逆时针方向旋转) 绕z 轴旋转: RZ T =?? ??? ???? ???-100 010000cos sin 00sin cos θθθθ 绕x 轴旋转: RX T =??????? ?? ???-10 00 0cos sin 00sin cos 000 01 θθθθ 绕y 轴旋转: RY T =????? ???? ???-10 0cos 0sin 00100sin 0cos θθθθ 程序代码: /*三维图形(立方体)旋转变换、比例变换*/ #include #include #include #include #include #include #define ZOOM_IN 0.9 #define ZOOM_OUT 1.1

图像几何变换

图像几何变换 一、实验目的 (1)学习几种常见的图像几何变换,并通过实验体会几何变换的效果; (2)掌握图像平移、剪切、缩放、旋转、镜像、错切等几何变换的算法原理及编 程实现 (3)掌握matlab编程环境中基本的图像处理函数 (4)掌握图像的复合变换 二、涉及知识点 (1)图像几何变换不改变图像像素的值,只改变像素所在的几何位置 (2)图像裁剪imcrop函数,语法格式为: B=imcrop(A);交互式用鼠标选取区域进行剪切 B=imcrop(A,[left top right bottom]);针对指定的区域[left top right bottom]进行剪切 (3)图像缩放imresize函数,语法格式为: B = imresize(A,m,method) 这里参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。 B = imresize(A,m,method)返回原图A的m倍放大的图像(m小于1时效果是 缩小)。 (4)图像旋转imrotate函数,语法格式为: B = imrot ate(A,angle,’crop’),参数crop用于指定裁剪旋转后超出图像的部分。 三、实验内容 (1)将图像hehua.bmp裁剪成200X200大小,并保存 (2)制作动画,将一幅图像逐渐向左上角平移移出图像区域,空白的地方用白色 填充 (3)利用剪切图像函数制作动画 (4)将图像分别放大1.5倍和缩小0.8倍,插值方法使用最近邻域法和双线性插 值法,对比显示图像。 (5)将图像水平镜像,再顺时针旋转45度,显示旋转后的图像。 (6)将图像分别进行水平方向30度错切,垂直方向45度错切,分别显示结果 具体实现: 1.将图像hehua.bmp裁剪成200X200大小,并保存 I=imread('hehua.bmp'); n=size(I); figure; subplot(1,2,1); imshow(I); title('原图'); I=double(I);

计算机图形学 图形几何变换的实现

计算机图形学图形几何变换的实现

————————————————————————————————作者:————————————————————————————————日期:

实验五图形几何变换的实现 班级08信计2 学号89姓名徐阳分数 一、实验目的和要求: 1、掌握理解二维、三维变换的数学知识、变换原理、变换种类、变换方法;进一步理解采用齐次坐标进行二维、三维变换的必要性;利用Turboc实现二维、三维图形的基本变换和复合变换。 二、实验内容: 1、理解采用齐次坐标进行图形变换的必要性——变换的连续性,使复合变换得以实现。 2、掌握二维、三维图形基本变换(平移、缩放、对称、旋转、错切)的原理及数学公式。 3、利用Turboc实现二维、三维图形的基本变换、复合变换,在屏幕上显示变换过程或变换结果。 三、实验结果分析: 程序代码如下: /*二维图形(直线)平移变换*/ #include #include #include main() {int x0,y0,x1,y1,i,j; int a[3][3]; char key; for(i=0;i<3;i++) for(j=0;j<3;j++) a[i][j]=0; for(i=0;i<3;i++) a[i][i]=1; int graphdriver=DETECT; int graphmode=0; initgraph(&graphdriver,&graphmode," "); cleardevice(); x0=250;y0=120;x1=350;y1=220; line(x0,y0,x1,y1); for( ; ;) {outtextxy(100,400,"<-:left->:right^:up v:down Esc->exit"); key=getch();

计算机图形学图形的几何变换的实现算法

实验二 图形的几何变换的实现算法 班级 08信计 学号 59 姓名 分数 一、实验目的和要求: 1、掌握而为图形的基本几何变换,如平移,旋转,缩放,对称,错切变换;。 2、掌握OpenGL 中模型变换函数,实现简单的动画技术。 3、学习使用OpenGL 生成基本图形。 4、巩固所学理论知识,加深对二维变换的理解,加深理解利用变换矩阵可由简单图形得到复杂图形。加深对变换矩阵算法的理解。 编制利用旋转变换绘制齿轮的程序。编程实现变换矩阵算法,绘制给出形体的三视图。调试程序及分析运行结果。要求每位学生独立完成该实验,并上传实验报告。 二、实验原理和内容: . 原理: 图像的几何变换包括:图像的空间平移、比例缩放、旋转、仿射变换和图像插值。 图像几何变换的实质:改变像素的空间位置,估算新空间位置上的像素值。 图像几何变换的一般表达式:[,][(,),(,)]u v X x y Y x y = ,其中,[,]u v 为变换后图像像素的笛卡尔坐标, [,]x y 为原始图像中像素的笛卡尔坐标。这样就得到了原始图像与变换后图像的像素的对应关系。 平移变换:若图像像素点 (,)x y 平移到 00(,)x x y y ++,则变换函数为 0(,)u X x y x x ==+, 0(,)v Y x y y y ==+,写成矩阵表达式为: 00x u x y v y ??????=+???????????? 其中,x 0和y 0分别为x 和y 的坐标平移量。 比例缩放:若图像坐标 (,)x y 缩放到( ,x y s s )倍,则变换函数为: 00x y s u x s v y ??????=?????????? ?? 其中, ,x y s s 分别为x 和y 坐标的缩放因子,其大于1表示放大,小于1表示缩小。 旋转变换:将输入图像绕笛卡尔坐标系的原点逆时针旋转θ角度,则变换后图像坐标为: cos sin sin cos u x v y θ-θ??????=??????θθ?????? 内容: 1、对一个三角形分别实现平移,缩放旋转等变化。

图形与几何变换.doc

图形与变换 一、考点综述 考点内容: (1)图形的轴对称 (2)图形的平移 (3)图形的旋转 (4)图形相似变换 考纲要求: 1理解轴对称及轴对称图形的联系和区别; 2掌握轴对称的性质;根据要求正确地作出轴对称图形。 3理解图形的平移性质; 4会按要求画出平移图形; 5会利用平移进行图案设计。 6理解图形旋转的有关性质; 7掌握基本中心对称图形; 8会运用轴对称、平移和旋转的组合进行图案设计 9掌握按耍求作出简单平面图形经相似变换后的图形。 考查方式及分值: 近年全国各地的中考数学试题出现了不少有关图形变换的试题.这些试题以新课程标准的内容和要求为依据,注重对数学知识的理解,技能的掌握综合应用能力的检测,积极推进素质教育和数学创新思维培养,中考中考查的内容丰富,形式多样,题型涉及选择题、填空题、作图题和解答题等,其中尤以选择题居多,填空题相对较少,所占分值在3"0分,在选择、填空、解答题中都有出现,图案的设计常在作图题中出现。 备考策略: 加强了对学生实验操作、读图作图、合情推理等能力的耍求,强化对图形变换的训练, 适当渗透空间观念,侧重数学思想方法以及运用几何知识解决实际问题能力。 二、例题精析 例1、如图1,在直线/上摆放有AABC和宜角梯形DEFG,且CD = 6 cm;在左ABC中:ZC = 90°, ZA=30°, AB = 4 cm;在直角梯形DEFG 中:EF//DG, ZDGF=90°, DG=6 cm, DE = 4cm, ZEDG = 60° 解答下列问题: o (1)旋转:将AABC绕点C顺时针方向旋转90°,请你在图中作出旋转后的对应图形 △ABC,并求出AB】的长度; (2)翻折:将沿过点Bi且与直线/垂直的直线翻折,得到翻折后的对应图形

数字图像处理课程设计报告

本科综合课程设计报告 题 目 ____________________________ 指导教师__________________________ 辅导教师__________________________ 学生姓名__________________________ 学生学号__________________________ _______________________________ 院(部)____________________________专业________________班 ___2008___年 _12__月 _30__日 数字图像处理演示系统 信息科学与技术学院 通信工程 052

1 主要内容 1.1数字图像处理背景及应用 数字图像处理的目的是改善图像的质量,它以人为对象,以改善人的视觉效果为目的。目前,图像处理演示系统应用领域广泛医学、军事、科研、商业等领域。因为数字图像处理技术易于实现非线性处理,处理程序和处理参数可变,故是一项通用性强,精度高,处理方法灵活,信息保存、传送可靠的图像处理技术。本图像处理演示系统以数字图像处理理论为基础,对某些常用功能进行界面化设计,便于初级用户的操作。 1.2 图像处理演示系统设计要求 能加载和显示原始图像,显示和输出处理后的图像; 系统要便于维护和具备可扩展性; 界面友好便于操作; 1.3 图像处理演示系统设计任务 数字图像处理演示系统应该具备图像的几何变换(平移、缩放、旋转、翻转)、图像增强(空间域的平滑滤波与锐化滤波)的简单处理功能。 1.3.1几何变换 几何变换又称为几何运算,它是图像处理和图像分析的重要内容之一。通过几何运算,可以根据应用的需要使原图像产生大小、形状、和位置等各方面的变化。简单的说,几何变换可以改变像素点所在的几何位置,以及图像中各物体之间的空间位置关系,这种运算可以被看成是将各物体在图像内移动,特别是图像具有一定的规律性时,一个图像可以由另外一个图像通过几何变换来产生。实际上,一个不受约束的几何变换,可将输入图像的一个点变换到输出图像中的任意位置。几何变换不仅提供了产生某些特殊图像的可能,甚至还可以使图像处理程序设计简单化。从变换性质来分可以分为图像的位置变换、形状变换等 1.3.2图像增强 图像增强是数字图像处理的基本内容之一,其目的是根据应用需要突出图像中的某些“有用”的信息,削弱或去除不需要的信息,以达到扩大图像中不同物体特征之间的差别,使处理后的图像对于特定应用而言,比原始图像更合适,或者为图像的信息提取以及其他图像分析技术奠定了基础。一般情况下,经过增强处理后,图像的视觉效果会发生改变,这种变化意味着图像的视觉效果得到了改善,某些特定信息得到了增强。

2二次函数图象的几何变换

一、二次函数图象的平移变换 (1)具体步骤: 先利用配方法把二次函数化成2 ()y a x h k =-+的形式,确定其顶点(,)h k ,然后做出二次函 数2y ax =的图像,将抛物线2 y ax =平移,使其顶点平移到(,)h k .具体平移方法如图所示: (2)平移规律:在原有函数的基础上“左加右减”. 二、二次函数图象的对称变换 二次函数图象的对称一般有五种情况,可以用一般式或顶点式表达 1. 关于x 轴对称 2 y a x b x c =++关于x 轴对称后,得到的解析式是2y ax bx c =---; ()2 y a x h k =-+关于x 轴对称后,得到的解析式是()2 y a x h k =---; 2. 关于y 轴对称 2 y a x b x c =++关于y 轴对称后,得到的解析式是2y ax bx c =-+; ()2 y a x h k =-+关于y 轴对称后,得到的解析式是()2 y a x h k =++; 3. 关于原点对称 2 y a x b x c =++关于原点对称后,得到的解析式是2y ax bx c =-+-; ()2 y a x h k =-+关于原点对称后,得到的解析式是 ()2 y a x h k =-+-; 4. 关于顶点对称 2 y a x b x c =++关于顶点对称后,得到的解析式是2 2 2b y ax bx c a =--+- ; ()2y a x h k =-+关于顶点对称后,得到的解析式是()2 y a x h k =--+. 5. 关于点()m n , 对称 ()2 y a x h k =-+关于点()m n ,对称后,得到的解析式是()2 22y a x h m n k =-+-+- 根据对称的性质,显然无论作何种对称变换,抛物线的形状一定不会发生变化,因此a 永远不变.求抛物线的对称抛物线的表达式时,可以依据题意或方便运算的原则,选择合适的形式,习惯上是先确定原抛物线(或表达式已知的抛物线)的顶点坐标及开口方向,再确定其对称抛物线的顶点坐标及开口方向,然后再写出其对称抛物线的表达式. 知识点拨 二次函数图象的几何变换

matlab 图像几何变换+答案

实验四:图像几何变换(编程报告) 一、实验目的 (1)学习几种常见的图像几何变换,并通过实验体会几何变换的效果; (2)掌握图像平移、剪切、缩放、旋转、镜像、错切等几何变换的算法原理及编 程实现 (3)掌握matlab编程环境中基本的图像处理函数 (4)掌握图像的复合变换 二、涉及知识点 (1)图像几何变换不改变图像像素的值,只改变像素所在的几何位置 (2)图像裁剪imcrop函数,语法格式为: B=imcrop(A);交互式用鼠标选取区域进行剪切 B=imcrop(A,[left top right bottom]);针对指定的区域[left top right bottom]进行剪切 (3)图像缩放imresize函数,语法格式为: B = imresize(A,m,method) 这里参数method用于指定插值的方法,可选用的值为'nearest'(最邻近法),'bilinear'(双线性插值),'bicubic'(双三次插值),默认为'nearest'。 B = imresize(A,m,method)返回原图A的m倍放大的图像(m小于1时效果是 缩小)。 (4)图像旋转imrotate函数,语法格式为: B = imrotate(A,angle,’crop’),参数crop用于指定裁剪旋转后超出图像的部分。 三、实验内容 (1)将图像hehua.bmp裁剪成200X200大小 (2)制作动画,将一幅图像逐渐向左上角平移移出图像区域,空白的地方用白色 填充 (3)利用剪切图像函数制作动画 (4)将图像分别放大1.5倍和缩小0.8倍,插值方法使用双线性插值法,分别显 示图像。 (5)将图像水平镜像,再顺时针旋转45度,显示旋转后的图像。 (6)将图像分别进行水平方向30度错切,垂直方向45度错切,分别显示结果 四、实验环境 Windows下matlab编程环境 五、实验源代码及结果 1.f=imread('hehua.bmp'); figure; imshow(f); title('原图'); f2=imcrop(f,[50,50,250,250]); figure; imshow(uint8(f2)); title('裁剪后'); imwrite(f2,'d:/5/hehua1.bmp');

数字图像处理图像变换实验报告

数字图像处理图像变换实验 报告 -标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII

实验报告实验名称:图像处理 姓名:刘强 班级:电信1102 学号:1404110128

实验一图像变换实验——图像点运算、几何变换及正交变换一、实验条件 PC机数字图像处理实验教学软件大量样图 二、实验目的 1、学习使用“数字图像处理实验教学软件系统”,能够进行图像处理方面的 简单操作; 2、熟悉图像点运算、几何变换及正交变换的基本原理,了解编程实现的 具体步骤; 3、观察图像的灰度直方图,明确直方图的作用和意义; 4、观察图像点运算和几何变换的结果,比较不同参数条件下的变换效 果; 5、观察图像正交变换的结果,明确图像的空间频率分布情况。 三、实验原理 1、图像灰度直方图、点运算和几何变换的基本原理及编程实现步骤 图像灰度直方图是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度分布情况,为图像的相关处理操作提供了基本信息。 图像点运算是一种简单而重要的处理技术,它能让用户改变图像数据占据的灰度范围。点运算可以看作是“从象素到象素”的复制操作,而这种复制操作是通过灰度变换函数实现的。如果输入图像为A(x,y),输出图像为B(x,y),则点运算可以表示为: B(x,y)=f[A(x,y)] 其中f(x)被称为灰度变换(Gray Scale Transformation,GST)函数,它描述了输入灰度值和输出灰度值之间的转换关系。一旦灰度变换函数确定,该点运算就完全确定下来了。另外,点运算处理将改变图像的灰度直方图分布。点运算又被称为对比度增强、对比度拉伸或灰度变换。点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸和均衡等。 图像几何变换是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放和图像旋转等,其理论基础主要是一些矩阵运算,详细原理可以参考有关书籍。 实验系统提供了图像灰度直方图、点运算和几何变换相关内容的文字说明,用户在操作过程中可以参考。下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:

图像几何变换程序设计_

实践教案 兰州理工大学 计算机与通信学院 2012 年秋季学期 计算机图象处理课程设计 题目:图像几何变换程序设计专业班级: 姓名:学号:指导教师:成绩: 目录 摘要 (1) 一、前言 ................................................... 2. ..

二、算法分析与描述 ................................................... 2. .. 三、详细设计过程 .................................................... 4. .. 四、调试过程中出现地问题及相应解决办法............. 8. 五、程序运行截图及其说明 .................................................... 9. .. 六、简单操作手册 ................................................... 1. .3. 设计总结 .................................................... 1. .4. 参考文献 .................................................... 1. .4. 致谢........................................... 1..5.. 附录 ................................................... 1. .5..

数字图像处理图像变换实验报告

实验报告 实验名称:图像处理 姓名:刘强 班级:电信1102 学号:1404110128

实验一图像变换实验——图像点运算、几何变换及正交变换一、实验条件 PC机数字图像处理实验教学软件大量样图 二、实验目的 1、学习使用“数字图像处理实验教学软件系统”,能够进行图像处理方面的 简单操作; 2、熟悉图像点运算、几何变换及正交变换的基本原理,了解编程实现的具体 步骤; 3、观察图像的灰度直方图,明确直方图的作用和意义; 4、观察图像点运算和几何变换的结果,比较不同参数条件下的变换效果; 5、观察图像正交变换的结果,明确图像的空间频率分布情况。 三、实验原理 1、图像灰度直方图、点运算和几何变换的基本原理及编程实现步骤 图像灰度直方图是数字图像处理中一个最简单、最有用的工具,它描述了一幅图像的灰度分布情况,为图像的相关处理操作提供了基本信息。 图像点运算是一种简单而重要的处理技术,它能让用户改变图像数据占据的灰度范围。点运算可以看作是“从象素到象素”的复制操作,而这种复制操作是通过灰度变换函数实现的。如果输入图像为A(x,y),输出图像为B(x,y),则点运算可以表示为: B(x,y)=f[A(x,y)] 其中f(x)被称为灰度变换(Gray Scale Transformation,GST)函数,它描述了输入灰度值和输出灰度值之间的转换关系。一旦灰度变换函数确定,该点运算就完全确定下来了。另外,点运算处理将改变图像的灰度直方图分布。点运算又被称为对比度增强、对比度拉伸或灰度变换。点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸和均衡等。 图像几何变换是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放和图像旋转等,其理论基础主要是一些矩阵运算,详细原理可以参考有关书籍。 实验系统提供了图像灰度直方图、点运算和几何变换相关内容的文字说明,用户在操作过程中可以参考。下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:

图像的几何变换

1实验目的、要求 实验目的: (1)掌握图像在空间域进行基本变换的原理与相关方法。 (2)能使用VC++实现图像平移变换、镜像变换、旋转变换、缩放变换的功能。 实验要求: A部分: (1)使用VC++设计程序:实现图像平移变换,图像缩放、图像裁剪、图像对角线镜像。 (2)使用VC++设计程序:对一幅高度与宽度均相等的图像,实现逆时针90度旋转。B部分: (1)包括A部分全部要求。 (2)使用VC++设计程序:对任意一幅图像(高度与宽度可以不相等),实现任意角度的旋转。 (3)研究放大图像时使用的插值算法,使用VC++实现常见的三种图像插值算法:最近邻插值,双线性插值,立方卷积插值。通过实验验证其效果。 2实验原理 图像的平移:通过直角坐标系的平移变换公式: x ‘ = x +dx y’ = y + dy 注:(x,y)为源图像的坐标,(x’, y’)为新图像的坐标,dx对应x的偏移量,dy对应y的偏移量。即:平移之后新图像上坐标为(x’, y’)的像素点的颜色值,应该等于原图像上坐标为(x, y)的像素点的颜色值,以下类似。 图像的镜像:镜像分为水平镜像和垂直镜像 垂直镜像计算公式如下(图像大小为宽度为M,高度为N): x’ = x y’ = N – 1 – y 水平镜像计算公式为:

x’ = M – 1 – x y’ = y 对角线镜像(对角线为左上角至右下角)计算公式: x’ = M – 1 – x y’ = N – 1 – y 图像的旋转:图像的旋转计算公式如下: X’ = X *COS Q – Y *SIN Q Y’ = X *SIN Q + Y*COS Q 注:(x,y)为源图像的坐标,(x’, y’)为新图像的坐标。 图像缩放:设原图像大小为宽度M、高度N,调整后宽度为k1×M、高度为k2×N,则: Img.New(x,y) = Img.Old(x/k1, y/k2) 图像插值:当放大图像时,像素也相应地增加,增加的过程就是插值程序自动选择信息较好的像素作为增加的像素,而并非只使用临近的像素,所以在放大图像时,图像看上去会比较平滑、干净。常用插值算法包括: 最近邻插值:近邻取样插值的缩放算法,直接取Color0颜色作为缩放后点的颜色 双线性插值:需要考虑(Sx,Sy)坐标点周围4个颜色值Color0\Color1\Color2\Color3,把(Sx,Sy)到A\B\C\D坐标点的距离作为系数来把4个颜色混合出缩放后点的颜色立方卷积插值:考虑映射点周围16个点(4x4)的颜色来计算最终的混合颜色 3主要设备、器材 硬件环境:AMD A8-4500M 1.90G/4G RAM 软件环境:操作系统:WIN7 开发工具:Micrsoft Visual C++ 6.0 4实验步骤及原始数据记录 关键代码说明:

图像几何变换的实现

图像几何变换的实现 引论 随着计算机科学的迅猛前进,计算机应用已经与生活中的方方面面密切联系,二十世纪八十年代图形界面操作系统的横空出世,促进了计算机的应用逐渐得到普及。数字图像存储着大量的信息量,现代社会信息大爆炸使得数字图像得到广泛应用,数字图象的收集和处理技术获得普遍的利用。 图像处理通常指的是数字图像处理。数字图象技术始于20世纪20年代,1920年从英国伦敦到美国纽约通过海底电缆传送了一幅图片,那是第一幅数字照片,传输该照片还采用了数字压缩技术,数字图象压缩技术还没有达到今天的水平,当时传输一幅图片采用压缩技术用时3天。从那时起,社会科技的不断发展和前进,数字图象与生活的联系愈来愈密切,为了使获得的图像显示的更为精确,就需要更高效的数字图象处理技术来支持,数字图象处理技术能够辅助人们更客观、确切地认识自然世界,另外,经过数字图象处理中的模式识别技术,能够将不同风格的图像分类处理。 当前国内利用的图像处理软件,其中包含一些专业图像操作软件,在润饰摄影或者绘画作品时,具有十分巨大的功效。可是这些专业性比较强的软件适宜专业的图象处理,国内常用的图像处理软件产品有美图秀秀,该软件是一款无偿的图片处理软件,不需耗费时间去特意研习就会用,比Adobe Photoshop简单很多。但是没有办法完全满足专业人士的要求,这就需要开发一种全新的软件来适应市场需求。 为了满足大多数人数字图像的处理,本文在综上研究了目前社会上普遍使用的图像处理软件,分析了现在社会上图像处理软件存在的不足,明确了研究的目标,主要针对存在的脱节现象,本文重点介绍了图像处理有关图像变换方面的操作,该设计针对目前社会上普遍存在用户自主设计,用户可以自行设计图像处理的效果,在很大程度上满足用户的要求。 Windows系统在现代社会上使用的比较普遍,Visual Studio是微软公司特意设计的在Windows系统下设计应用程序的集成开发平台,支持JavaScript、VB、C#和C/C++语言开发程序。C++语言是是一种高级语言,由C语言发展而来的,C++语言不但继承了C语言的简练、高效和在某些操作上沿袭了汇编语言指令的特色,支持用C语言设计的系统基础类,C + +也有其独特的特点:支持面向对象编程,支持泛型编程和强大的标准模板库。基于MFC 的软件设计使用C++语言开发不仅可以使用其强大的类库,可以很方便的设计界面平台,还有利于程序文档的编写。 第一章图像基础 1.1图像的矩阵表示 通常在计算机平面上看到的画面是通过图形或者图像的形式显示的,图形和图像是计算机上两种不同的图像存储形式。通常图形是以矢量结构的形式存储图形数据的;图像则是以栅格结构的形式存储图的,每个栅格又被称为一个像素,图像就是将一幅图片分成很多的栅格,像素以数列矩阵的形式排列,就组成一个像素矩阵,一幅图像就以这种数列矩阵的形式存储在计算机上的;像素描述一幅图像的基本信息包括图像的强度、颜色和坐标等,这种以像素和数列矩阵的形式存储图像数据的存储方式方便设计和实现数字图像处理操作。图像存

相关主题
文本预览
相关文档 最新文档