当前位置:文档之家› 实验一 图像统计特征及图像几何变换

实验一 图像统计特征及图像几何变换

实验一 图像统计特征及图像几何变换
实验一 图像统计特征及图像几何变换

实验一图像统计特征及图像几何变换

一、实验目的

1)掌握MATLAB语言中图像数据与信息的读取方法;

2)掌握图像的基本类型,了解常用图像格式及类型之间的转换;

3)掌握图像的典型统计特征计算方法;

4)掌握在MATLAB中绘制灰度直方图的方法;

5)掌握图像典型几何变换的计算方法;

6)掌握计算机的使用方法和常用系统软件及应用软件的使用。

7)通过编程,上机调试程序,进一步增强使用计算机解决问题的能力。

二、实验原理

1. BMP图像及JPG图像的编码格式

1) BMP格式是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持,并被广泛应用。这种格式包含的图像信息较丰富,几乎不进行压缩,由此导致了它与生俱生来的缺点——占用磁盘空间过大。它有这样一些特点:只能存放一幅图像;只能存储四种图像数据:单色、16色、256色、真彩色;图像数据有压缩或不压缩两种处理方式;调色板的数据存储结构较为特殊,其存储格式不是固定的,而是与文件头的某些具体参数密切相关。

BMP图像文件的文件结构可分为三部分:表头、调色板和图像数据。表头固定54字节,只有真彩色BMP图像文件内没有调色板数据,其余不超过256种颜色的图像文件都必须设定调色板信息。调色板是包含不同颜色的颜色表,每一种颜色以红绿蓝三种颜色的组合来表示,图像每一像素对应一个数字,而该数字对应调色板中一种颜色,如某像素值为1,表示给颜色为调色板的编号为1的颜色。调色板的单元个数等于图像的颜色数。真彩色图像的每个像素值直接用RGB三个字节来表示颜色,不需要调色板。所谓16色或256色,只是表示该幅图像最多只能有16种颜色或256种颜色。

2) JPEG格式与JPEG2000格式:JPEG格式是常见的一种图像格式,由联合图像专家小组开发。它用有损压缩方式去除冗余的图像和彩色数据,获取得极高的压缩率的同时能展现十分丰富生动的图像,可用最少的磁盘空间得到较好的图像质量。JPEG格式具有调节图像质量的功能,允许用不同的压缩比例对这种文件压缩,比如可以把1.37MB的BMP位图文件压缩至20.3KB。实际使用中,需

要在图像质量和文件尺寸之间找到平衡点。

JPEG2000格式作为JPEG 格式的升级版,其压缩率比JPEG 高约30%左右。与JPEG 不同的是,JPEG2000同时支持有损和无损压缩。此外,JPEG2000 放弃了JPEG 所采用的以离散余弦变换(Discrete Cosine Transform)为主的区块编码方式,而改以小波变换(Wavelet transform) 为主的多解析编码方式,能够实现渐进传输,即先传输图像轮廓,然后逐步传输数据,不断提高图像质量,让图像由朦胧到清晰显示,而不必是像原来的JPEG 一样,由上到下慢慢显示。

2.图像的基本统计特征

设灰度图像为I[W][H],其中W 表示图像宽度,H 表示图像的高度,那么灰度图像的平均灰度、方差、直方图(近似概率密度分布)由如下计算公式得到:

均值: 111(,)H W y x m I y x WH

===∑∑ 方差:()2111(,)H W y x v I y x m WH

===-∑∑ 直方图:();0,1,...,1i L h i i L WH

=

=-;其中L 是灰度级的个数,i L 为某一灰度级像素数目。 3.图像的简单几何变换

图像的上下、左右颠倒意味着对应的像素点交换位置,根据这一原则可实现图像的简单几何变换。原图中的(x0,y0)绕原点逆时针旋转后,坐标将变成

1001

00cos()sin()sin()cos()x x y y x y θθθθ=-??=+? 为获得平滑的新图,需要利用插值算法。

图像的水平(垂直)切变意味着图像在水平(垂直)方向上两点之间速度的变化,原图中的(x0,y0)经过水平切变后,坐标将变成

0101101x x k y y ??????= ? ? ??

????? 经过垂直切变后,坐标将变成

0101101x x y y k ??????= ? ? ??

????? 复杂的几何变换涉及到矩阵运算的组合,作为课后思考题。

4.MATLAB图像处理基础

4.1.MATLAB支持的图像文件格式

MATLAB支持的图像文件格式超过15种,其中需要重点理解的格式有两种:

1)JPEG(Joint Photogyaphic Expeyts Group):一种称为联合图像专家组的

图像压缩格式。

2)BMP(Windows Bitmap):有1位、4位、8位、24位非压缩图像,8位

RLE(Run length Encoded)的图像。文件内容包括文件头(一个BITMAP

FILEHEADER数据结构)、位图信息数据块(位图信息头BITMAP

INFOHEADER和一个颜色表)和图像数据。

4.2.MATLAB支持的图像类型判断及图像类型转换

MATLAB支持五种图像类型包括二值图像、索引图像、灰度图像、RGB图像和多帧图像阵列,具体定义见表1。重点理解前四种类型。

表1 图像类型及其对应的像素数据类型

在MATLAB中如果要判断一个图像文件的类型,可使用如下指令:

?isbw:若图像为二值图像,则返回真。

?isgray:若图像为灰度图像,则返回真。

?isind:若图像为索引图像,则返回真。

?isrgb:若图像为RGB图像,则返回真。

MATLAB还提供了若干函数,用于图像类型的转换:

?gray2ind:灰度图像或二值图像向索引图像转换。

?grayslice:设定阈值将灰度图像转换为索引图像。

?im2bw:设定阈值将灰度、索引、RGB图像转换为

二值图像。

?im2double:将图像数组转换为double型。

?im2uint8:将图像数组转换为uint8型。

?im2uint16:将图像数组转换为uint16型。该函数不

支持二值图像序列的转换。

?ind2gray:索引图像向灰度图像转换。

?ind2rgb:索引图像向RGB图像转换。

?mat2gray:将一个数据矩阵转换为灰度图像。

?rgb2gray:RGB图像向灰度图像转换或将彩色色图

转换成灰度色图。

4.3.MATLAB对图像文件的读、写、显示

查询一个图像文件信息,函数调用格式为:

info = imfinfo(filename,fmt)

info = imfinfo(filename)

参数filename是指文件完整路径名。

参数fmt对应于所有图像处理工具箱中所有支持的图像文件格式。

图像文件读指令

A = imread(filename,fmt)

其作用是从图像文件中读取数据。

文件名用字符串filename表示,扩展名用fmt表示,

矩阵A为读取的图像数据。如果filename所指的为灰度级图像,则A为一个二维矩阵;如果filename所指的为RGB图像,

则A为一个m×n×3的三维矩阵。filename表示的文件名必须

在MATLAB的搜索路径范围内,否则需指出其完整路径。

imread的其他重要的调用格式包括:

[X,map] = imread(filename,fmt)

[…] = imread(filename)

图像文件写指令

imwrite(A,filename,fmt)

imwrite(X,map,filename,fmt)

imwrite(…,filename)

imwrite(…,Param1,Val1,Param2,Val2…)

作用是数据写入到图像文件filename中。

其中imwrite(…,Param1,Val1,Param2,Val2…)可以让用户控制HDF、JPEG、TIFF等一些图像文件格式的输出特性。MATLAB

中默认的保存类型是uint8。由于PNG和TIFF格式支持16位的

图像,所以保存这类图像时,保存类型就是uint16。

图像显示命令

imshow filename:显示图像文件。

imshow(I,[low high]):将非图像数据显示为图像,这需要考虑数据是否超出了所显示类型的最大允许范围,其中[low high]

用于定义待显示数据的范围。

imshow(BW):显示二值图像,BW为黑白二值图像矩阵。

imshow(X,map):显示索引图像,X为索引图像矩阵,map 为色彩图示。

imshow(I):显示灰度图像,I为二值图像矩阵。

imshow(RGB):显示RGB图像,RGB为RGB图像矩阵。

三、主要实验仪器及材料

微型计算机、Matlab 6.5教学版。

四、实验内容

1.知识准备

认真复习以上基础理论,理解本实验所用到的实验原理。

2.BMP图像格式分析

1)读取一幅BMP图像,观察其格式,并对该格式中文件头大小,是否有

调色板,是否为灰度图等进行分析并给出结论。

2)读取一幅256色BMP图像,将其转为灰度图,查看文件大小的变化。

3)读取一幅JPG图像,将其转化为BMP图像。

3.编程求取图像的统计特征

1)求取图像的最大值,最小值,平均值,方差等统计参数;

2)编写灰度图象的灰度值直方图的函数,并与MATLAB提供的IMHIST

函数的结果进行比较;

4.编程进行图像的几何变换

1)对图像进行水平、垂直方向上的平移,观察变换后的灰度直方图;

2)对图像进行水平、垂直方向上的颠倒,观察变换后的灰度直方图;

3)对图像进行水平、垂直及混合方向上的切变,观察变换后的图像及灰度

直方图;

4)对图像绕中心顺时针旋转45度及135度,观察变换后的图像及灰度直

方图;

5)(提高题) 对图像绕某一指定点顺时针旋转任意角度,观察变换后的图像

及灰度直方图。

5.上机调试程序并打印或记录实验结果

6.完成实验报告

五、实验报告要求

1)简述实验原理及目的。

2)给出上述实验内容的实验结果。

3)列出计算图像统计特征、图像几何变换的公式,画出程序框图,并列出

实验程序清单(可略)(包括必要的程序说明)。

4)记录调试运行情况及所遇问题的解决方法。

5)给出实验结果,并对结果做出分析。

6)实验中出现的图表要做出标记,并按相同比例适当缩放,连同文字打印

出来粘在实验报告内页。

7)简要回答思考题。

(A)如何调整图像的直方图分布,使之近似于正态分布?

(B)如何利用矩阵运算实现图像一般性的几何变换(如旋转缩放组合)?

(C)图像几何变换中的双线性插值、三次立方插值算法如何编程实现?

图像灰度变换实验报告

图像灰度变换报告 一.实验目的 1.学会使用Matlab ; 2.学会用Matlab 软件对图像进行灰度变换,观察采用各种不同灰度变换发法对最终图像效果的影响; 二.实验内容 1.熟悉Matlab 中的一些常用处理函数 读取图像:img=imread('filename'); //支持TIF,JPEG,GIF,BMP,PNG 等文件格式。 显示图像:imshow(img,G); //G 表示显示该图像的灰度级数,如省略则默认为256。 保存图片:imwrite(img,'filename'); //不支持GIF 格式,其他与imread 相同。 亮度变换:imadjust(img,[low_in,high_in],[low_out,high_out]); //将low_in 至high_in 之间的值映射到low_out 至high_out 之 间,low_in 以下及high_in 以上归零。 绘制直方图:imhist(img); 直方图均衡化:histeq(img,newlevel); //newlevel 表示输出图像指定的灰度级数。 2.获取实验用图像:rice.jpg. 使用imread 函数将图像读入Matlab 。 3 .产生灰度变换函数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 函数保存处理后的新图像。 4.产生灰度变换函数T2,使得: s = 5.用T2imwrite 保存处理后的新图像。 6.分别用 s = r 0.6; s = r 0.4; s = r 0.3 对kids.tiff 图像进行处理。为简便起见,使用Matlab 中的imadjust 函数,最后用imwrite 保存处理后的新图像。 7.对circuit.jpg 图像实施反变换(Negative Transformation )。s =1-r; 使

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

面向对象程序设计 学号: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、个人总结

mfc空间几何变换之图像平移、镜像、旋转、缩放详解

MFC空间几何变换之图像平移、镜像、旋转、缩放详解 一. 图像平移 前一篇文章讲述了图像点运算(基于像素的图像变换),这篇文章讲述的是图像几何变换:在不改变图像容的情况下对图像像素进行空间几何变换的处理方式。 点运算对单幅图像做处理,不改变像素的空间位置;代数运算对多幅图像做处理,也不改变像素的空间位置;几何运算对单幅图像做处理,改变像素的空间位置,几何运算包括两个独立的算法:空间变换算法和灰度级插值算法。 空间变换操作包括简单空间变换、多项式卷绕和几何校正、控制栅格插值和图像卷绕,这里主要讲述简单的空间变换,如图像平移、镜像、缩放和旋转。主要是通过线性代数中的齐次坐标变换。 图像平移坐标变换如下: 运行效果如下图所示,其中BMP图片(0,0)像素点为左下角。

其代码核心算法: 1.在对话框中输入平移坐标(x,y) m_xPY=x,m_yPY=y 2.定义Place=dlg.m_yPY*m_nWidth*3 表示当前m_yPY行需要填充为黑色 3.新建一个像素矩阵ImageSize=new unsigned char[m_nImage] 4.循环整个像素矩阵处理 for(int i=0 ; i=Place && countWidth=Place && countWidth>=dlg.m_xPY*3) {//图像像素平移区域 ImageSize[i]=m_pImage[m_pImagePlace];//原(0,0)像素赋值过去 m_pImagePlace++;countWidth++; if(countWidth==m_nWidth*3) {//一行填满m_pImagePlace走到(0,1) number++;m_pImagePlace=number*m_nWidth*3; } } } 5.写文件绘图fwrite(ImageSize,m_nImage,1,fpw) 第一步:在ResourceView资源视图中,添加Menu子菜单如下:(注意ID号) 第二步:设置平移对话框。将试图切换到ResourceView界面--选中Dialog,右键鼠标新建一个Dialog,并新建一个名为IDD_DIALOG_PY。编辑框(X)IDC_EDIT_PYX 和(Y)IDC_EDIT_PYY,确定为默认按钮。设置成下图对话框:

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

贵州大学实验报告 学院:计算机科学与技术专业:软件工程班级:软件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

实验一Matlab图像处理基础及图像灰度变换

实验一Matlab图像处理基础及图像灰度变换 一、实验目的 了解Matlab平台下的图像编程环境,熟悉Matlab中的DIP (Digital Image Processing)工具箱;掌握Matlab中图像的表示方法,图像类型、数据类型的种类及各自的特点,并知道怎样在它们之间进行转换。掌握Matlab环境下的一些最基本的图像处理操作,如读图像、写图像、查看图像信息和格式、尺寸和灰度的伸缩等等;通过实验掌握图像直方图的描绘方法,加深直方图形状与图像特征间关系间的理解;加深对直方图均衡算法的理解。 二、实验内容 1.从硬盘中读取一幅灰度图像; 2.显示图像信息,查看图像格式、大小、位深等内容; 3.用灰度面积法编写求图像方图的Matlab程序,并画图; 4.把第3步的结果与直接用Matlab工具箱中函数histogram的结果进行比较,以衡量第3步中程序的正确性。 5.对读入的图像进行直方图均衡化,画出处理后的直方图,并比较处理前后图像效果的变化。 三、知识要点 1.Matlab6.5支持的图像图形格式 TIFF, JEPG, GIF, BMP, PNG, XWD (X Window Dump),其中GIF不支持写。 2.与图像处理相关的最基本函数 读:imread; 写:imwrite; 显示:imshow; 信息查看:imfinfo; 3.Matlab6.5支持的数据类 double, unit8, int8, uint16, int16, uint32, int32, single, char (2 bytes per element), logical. 4.Matlab6.5支持的图像类型 Intensity images, binary images, indexed images, RGB image 5.数据类及图像类型间的基本转换函数 数据类转换:B = data_class_name(A);

图像处理实验报告

实验报告 实验课程名称:数字图像处理 班级:学号:姓名: 注:1、每个实验中各项成绩按照10分制评定,每个实验成绩为两项总和20分。 2、平均成绩取三个实验平均成绩。 2016年 4 月18日

实验一 图像的二维离散傅立叶变换 一、实验目的 掌握图像的二维离散傅立叶变换以及性质 二、实验要求 1) 建立输入图像,在64?64的黑色图像矩阵的中心建立16?16的白色矩形图像点阵, 形成图像文件。对输入图像进行二维傅立叶变换,将原始图像及变换图像(三维、中心化)都显示于屏幕上。 2) 调整输入图像中白色矩形的位置,再进行变换,将原始图像及变换图像(三维、中 心化)都显示于屏幕上,比较变换结果。 3) 调整输入图像中白色矩形的尺寸(40?40,4?4),再进行变换,将原始图像及变 换图像(三维、中心化)都显示于屏幕上,比较变换结果。 三、实验仪器设备及软件 HP D538、MATLAB 四、实验原理 傅里叶变换作为分析数字图像的有利工具,因其可分离性、平移性、周期性和共轭对称性可以定量地方分析数字化系统,并且变换后的图像使得时间域和频域间的联系能够方便直观地解决许多问题。实验通过MATLAB 实验该项技能。 设),(y x f 是在空间域上等间隔采样得到的M ×N 的二维离散信号,x 和y 是离散实变量,u 和v 为离散频率变量,则二维离散傅里叶变换对一般地定义为 ∑∑ -=-=+-= 101 )],( 2ex p[),(1 ),(M x N y N yu M xu j y x f MN v u F π,1,0=u …,M-1;y=0,1,…N-1 ∑∑-=-=+=101 )],( 2ex p[),(),(M x N y N uy M ux j v u F y x f π ,1,0=x …,M-1;y=0,1,…N-1 在图像处理中,有事为了讨论上的方便,取M=N ,这样二维离散傅里叶变换对就定义为 ,]) (2ex p[),(1 ),(101 ∑∑ -=-=+- = N x N y N yu xu j y x f N v u F π 1,0,=v u …,N-1 ,]) (2ex p[ ),(1 ),(101 ∑∑-=-=+= N u N v N vy ux j v u F N y x f π 1,0,=y x ,…,N-1 其中,]/)(2exp[N yv xu j +-π是正变换核,]/)(2exp[N vy ux j +π是反变换核。将二维离散傅里叶变换的频谱的平方定义为),(y x f 的功率谱,记为 ),(),(|),(|),(222v u I v u R v u F v u P +== 功率谱反映了二维离散信号的能量在空间频率域上的分布情况。 五、实验步骤、程序及结果: 1、实验步骤: (1)、编写程序建立输入图像; (2)、对上述图像进行二维傅立叶变换,观察其频谱 (3)、改变输入图像中白框的位置,在进行二维傅里叶变换,观察频谱;

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

实验五 图形几何变换的实现 班级:信计二班 学号: :解川 分数: 一、实验目的 为了掌握理解二维、三维的数学知识、变换原理、变换种类、变换方法;进一步理解采用齐次坐标进行二维、三维变换的必要性;利用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);

实验二 图像变换

实验二图像变换 一.实验目的及要求 1.利用MATLAB研究数字图像的傅立叶变换、离散余弦变换等频域变换算法; 2.掌握MATLAB频域变换函数的使用方法; 3.了频域变换的基本应用。 二、实验内容 1.傅立叶变换 研究以下程序,分析程序功能;输入执行各命令行,认真观察命令执行的结果。熟悉程序中所使用函数的调用方法,改变有关参数,观察试验结果。 (1) 简单人工二值图像 clear all, close all f = zeros(50,50); f(15:35,23:28) = 1; figure(1), imshow(f,'notruesize') F = fft2(f,128,128); F1 = fftshift(F); figure(2), imshow(log(abs(F1)), [-1 5]); colormap(gray); colorbar figure(3), mesh(1:128,1:128, abs(F1)); colormap(gray); colorbar F2 = fft2(imrotate(f,90),128,128); F3 = fftshift(F2); figure(4), imshow(imrotate(f,90),'notruesize') figure(5), imshow(log(abs(F3)), [-1 5]); colormap(gray); colorbar figure(6), mesh(1:128,1:128, abs(F3)); colormap(gray); colorbar (2)实际图像傅立叶变换 选取一副图像(rice.png),进行离散傅里叶变换,再对其进行一定的角度旋转,进行傅里叶变换. 2.离散余弦变换(DCT) (1) 对cameraman.tif图像的离散余弦变换及逆变换重建 (2)对lena.jpg进行离散余弦变换,并对其进行压缩解压,观察其结果; 三、实验设备 1.PIII以上微机; 2.MATLAB6.5; 四、预习与思考 1.预习实验内容,阅读教材熟悉实验原理; 2.查阅资料,熟悉实验中涉及的有关函数。 五、实验报告要求 1.简述试验的目的和试验原理;

图像处理灰度变换实验

一. 实验名称:空间图像增强(一) 一.实验目的 1.熟悉和掌握利用matlab工具进行数字图像的读、写、显示、像素处理等数字图像处理的基本步骤和流程。 2.熟练掌握各种空间域图像增强的基本原理及方法。 3.熟悉通过灰度变换方式进行图像增强的基本原理、方法和实现。 4.熟悉直方图均衡化的基本原理、方法和实现。 二.实验原理 (一)数字图像的灰度变换 灰度变换是图像增强的一种经典而有效的方法。灰度变换的原理是将图像的每一个像素的灰度值通过一个函数,对应到另一个灰度值上去从而实现灰度的变换。常见的灰度变换有线性灰度变换和非线性灰度变换,其中非线性灰度变换包括对数变换和幂律(伽马)变换等。 1、线性灰度变换 1)当图像成像过程曝光不足或过度,或由于成像设备的非线性和图像记录设备动态范围太窄等因素,都会产生对比度不足的弊病,使图像中的细节分辨不清,图像缺少层次。这时,可将灰度范围进行线性的扩展或压缩,这种处理过程被称为图像的线性灰度变换。对灰度图像进行线性灰度变换能将输入图像的灰度值的动态范围按线性关系公式拉伸扩展至指定范围或整个动态范围。 2)令原图像f(x,y)的灰度范围为[a,b],线性变换后得到图像g(x,y),其灰度范围为[c,d],则线性灰度变换公式可表示为

a y x f b y x f a b y x f c c a y x f a b c d d y x g <≤≤>?????+---=),(),(),(, ,]),([,),( (1) 由(1)式可知,对于介于原图像f (x,y )的最大和最小灰度值之间的灰度值,可通过线性变换公式,一一对应到灰度范围[c,d]之间,其斜率为(d-c)/(b-a);对于小于原图像的最小灰度值或大于原图像的最大灰度值的灰度值,令其分别恒等于变换后的最小和最大灰度值。变换示意图如图1所示。 图1 线性灰度变换示意图 当斜率大于一时,变换后的灰度值范围得到拉伸,图像对比度得到提高;当斜率小于一时,变换后的灰度值范围被压缩,最小与最大灰度值的差变小,图像对比度降低;当斜率等于一时,相当于对图像不做变换。 3)由上述性质可知,线性灰度变换能选择性地加强或降低特定灰度值范围内的对比度,故线性灰度变换同样也可做分段处理:对于有价值的灰度范围,将斜率调整为大于一,用于图像细节;对于不重要的灰度范围,将图像压缩,降低对比度,减轻无用信息的干扰。最常用的分段线性变换的方法是分三段进行线性变换。 在原图像灰度值的最大值和最小值之间设置两个拐点,在拐点处,原图像的灰度值分别为r 1,r 2,该拐点对应的变换后的图像的灰度值分别为s 1,s 2,另外,取原图像灰度的最小值为r 0,最大值为r m ,对应的变换后的灰度值分别为s 0,s m 。

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

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

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

实验五图形几何变换的实现 班级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();

图像格式转换实验报告

实验1 图像格式转换实验报告 学 号:12224506 姓 名:陈振辉 班 级:5班 一、实验目的 掌握两种以上图像的格式,重点掌握BMP 图像格式。 二、实验原理: 1、JPEG 文件的解码过程。 敷设技于管路护层防含线槽试以正常杂设方案以卷技术地缩小进行自动作,

①.读入文件的相关信息 按照上述的JPEG 文件数据存储方式,把要解码的文件的相关信息一一读出,为接下来的解码工作做好准备。参考方法是,设计一系列的结构体对应各个标记,并存储标记内表示的信息。其中图像长宽、多个量化表和哈夫曼表、水平/垂直采样因子等多项信息比较重 要。以下给出读取过程中的两个问题。 1)整个文件的大体结构 JFIF 格式的JPEG 文件(*.jpg)的一般顺序为: SOI(0xFFD8)APP0(0xFFE0)[APPn(0xFFEn)]可选 DQT(0xFFDB)SOF0(0xFFC0)DHT(0xFFC4)SOS(0xFFDA)压缩数据EOI(0xFFD9)2)字的高低位问题 JPEG 文件格式中,一个字(16位)的存储使用的是 Motorola 格式, 而不是 Intel 格式。 也就是说, 一个字的高字节(高8位)在数据流的前面, 低字节(低8位)在数据流的后面,与平时习惯的Intel 格式不一样。. 3)读出哈夫曼表数据 在标记段DHT 内,包含了一个或者多个的哈夫曼表。 不同位数的码字数量JPEG 文件的哈夫曼编码只能是1~16位。这个字段的16个字节分别表示1~16位的编码码字在哈 夫曼树中的个数。编码内容这个字段记录了哈夫曼树中各个叶子结点的权。所以,上一字段(不同位数的码字数量)的16个数值之和就应该是本字段的长度,也就是哈夫曼树中叶 子结点个数。 4)建立哈夫曼树 读出哈夫曼表的数据后,就要建立哈夫曼树。 ②.初步了解图像数据流的结构 a) 在图片像素数据流中,信息可以被分为一段接一段的最小编码单元(Minimum CodedUnit ,MCU )数据流。所谓MCU ,是图像中一个正方矩阵像素的数据。矩阵的大小 是这样确定的:查阅标记SOF0,可以得到图像不同颜色分量的采样因子,即Y 、Cr 、Cb 三个分量各自的水平采样因子和垂直采样因子。大多图片的采样因子为4:1:1或 1:1:1。其中,4:1:1即(2*2):(1*1):(1*1));1:1:1即(1*1):(1*1): (1*1)。记三个分量中水平采样因子最大值为Hmax ,垂直采样因子最大值为Vmax ,那么 单个MCU 矩阵的宽就是Hmax*8像素,高就是Vmax*8像素。 、管路敷设技术通过管线不仅可以解决吊顶层配置不规范高中资料试卷问题,而且可保障各类管路习题到位。在管路敷设过程中,要加强看护关于管路高中资料试卷连接管口处理高中资料试卷弯扁度固定盒位置保护层防腐跨接地线弯曲半径标高等,要求技术交底。管线敷设技术包含线槽、管架等多项方式,为解决高中语文电气课件中管壁薄、接口不严等问题,合理利用管线敷设技术。线缆敷设原则:在分线盒处,当不同电压回路交叉时,应采用金属隔板进行隔开处理;同一线槽内,强电回路须同时切断习题电源,线缆敷设完毕,要进行检查和检测处理。、电气课件中调试对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行 高中资料试卷调整试验;通电检查所有设备高中资料试卷相互作用与相互关系,根据生产工艺高中资料试卷要求,对电气设备进行空载与带负荷下高中资料试卷调控试验;对设备进行调整使其在正常工况下与过度工作下都可以正常工作;对于继电保护进行整核对定值,审核与校对图纸,编写复杂设备与装置高中资料试卷调试方案,编写重要设备高中资料试卷试验方案以及系统启动方案;对整套启动过程中高中资料试卷电气设备进行调试工作并且进行过关运行高中资料试卷技术指导。对于调试过程中高中资料试卷技术问题,作为调试人员,需要在事前掌握图纸资料、设备制造厂家出具高中资料试卷试验报告与相关技术资料,并且了解现场设备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。 、电气设备调试高中资料试卷技术电力保护装置调试技术,电力保护高中资料试卷配置技术是指机组在进行继电保护高中资料试卷总体配置时,需要在最大限度内来确保机组高中资料试卷安全,并且尽可能地缩小故障高中资料试卷破坏范围,或者对某些异常高中资料试卷工况进行自动处理,尤其要避免错误高中资料试卷保护装置动作,并且拒绝动作,来避免不必要高中资料试卷突然停机。因此,电力高中资料试卷保护装置调试技术,要求电力保护装置做到准确灵活。对于差动保护装置高中资料试卷调试技术是指发电机一变压器组在发生内部故障时,需要进行外部电源高中资料试卷切除从而采用高中资料试卷主要保护装置。

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

实验二 图形的几何变换的实现算法 班级 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且与直线/垂直的直线翻折,得到翻折后的对应图形

实验一图像的傅立叶变换

实验一图像的傅立叶变换 一、实验目的 1了解图像变换的意义和手段; 2熟悉傅里叶变换的孩本性质; 3热练掌握FFT酌方法反应用; 4通过实验了解二维频谱的分布特点; 5通过本实验掌握利用MATLAB编程实现数字图像的傅立叶变换。 二、实验仪器 1计算机; 2 MATLAB程序; 3移动式存储器(软盘、U盘等)。 4记录用的笔、纸。 三、实验原理 1应用傅立叶变换进行图像处理 傅里叶变换是线性系统分析的一个有力工具,它能够定量地分析诸如数字化系统、采样点、电子放大器、卷积滤波器、噪音和显示点等的作用。通过实验培养这项技能,将有助于解决大多数图像处理问题。对任何想在工作中有效应用数字图像处理技术的人来说,把时间用在学习和掌握博里叶变换上是很有必要的。 2傅立叶(Fourier)变换的定义 对于二维信号,二维Fourier变换定义为: 二维离散傅立叶变换为:

图像的傅立叶变换与一维信号的傅立叶变换变换一样,有快速算法,具体参见参考书目,有关傅立叶变换的快速算法的程序不难找到。实际上,现在有实现傅立叶变换的芯片,可以实时实现傅立叶变换。 3利用MATLAB软件实现数字图像傅立叶变换、DCT变换的程序: 四、实验步骤 1、打开计算机,安装和启动MATLAB程序;程序组中“work”文件夹中应有待处理的图像文件; 2、利用MatLab工具箱中的函数编制FFT频谱显示的函数; 3、a).调入、显示图像 b)对这图像做FFT、DCT并利用自编的函数显示其频谱; c)讨论不同的图像内容与FFT、DCT频谱之间的对应关系。 4、记录和整理实验报告。 五、实验内容 Matlab源程序如下: clc clear all img=imread(''); subplot(2,2,1),imshow(img); title('原图'); f=rgb2gray(img); F=fft2(f); subplot(2,2,2),imshow(F);title('傅里叶变换');

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

数字图像处理图像变换实验 报告 -标准化文件发布号:(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)函数,它描述了输入灰度值和输出灰度值之间的转换关系。一旦灰度变换函数确定,该点运算就完全确定下来了。另外,点运算处理将改变图像的灰度直方图分布。点运算又被称为对比度增强、对比度拉伸或灰度变换。点运算一般包括灰度的线性变换、阈值变换、窗口变换、灰度拉伸和均衡等。 图像几何变换是图像的一种基本变换,通常包括图像镜像变换、图像转置、图像平移、图像缩放和图像旋转等,其理论基础主要是一些矩阵运算,详细原理可以参考有关书籍。 实验系统提供了图像灰度直方图、点运算和几何变换相关内容的文字说明,用户在操作过程中可以参考。下面以图像点运算中的阈值变换为例给出编程实现的程序流程图,如下:

图像的几何变换

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实验步骤及原始数据记录 关键代码说明:

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