二维图形几何变换实验报告

二维图形几何变换实验报告
二维图形几何变换实验报告

计算机图形学实验报告

实验4二维图形几何变换

一实验目的

1)掌握3*3矩阵乘法运算的编程实现:

2)掌握平移、比例、旋转三种基本二维几何变换矩阵生成:

3)掌握相对于任意参考点的二维复合变换矩阵生成。

二实验要求

1)设计实现二维图形变换类,具有平移、比例、旋转二维几何变换功能,以及相对于任意参考点的二维复合变换功能;

2)将2.2节直线类所绘制的如图2-3所示的菱形线框,绕最上端A点匀速旋转,并要求相对于A点来回缩放。

3)使用双缓冲机制进行图形绘制,避免运动闪烁,所有图形先绘制到用户自定的DC,绘制完成后再统一拷贝到屏幕DC。三实验步骤

第1步:打开2.2节(实验2)工程文件

直接使用2.2节(实验2)的MFC项目工程,及其中的直线类CLine.

第2步:二维点类CP2添加齐次坐标

在“Line.h/cpp”文件中的二维点类CP2的相关代码中添加齐次坐标,修改后的CP2类代码如下(带底纹部分为添加的代码)。

“Line.h”中相关代码

class CP2

{

public:

CP2();

virtual~CP2();

CP2(double,double);

public:

double x;

double y;

double w;

};

class CLine

{

public:

CLine();

virtual~CLine();

void SetLineColor(COLORREF);

void MoveTo(CP2);

void MoveTo(double,double);

void LineTo(CP2, CDC*);

void LineTo(double,double, CDC*);

public:

CP2 P0;

CP2 P1;

COLORREF clr;

};

===================================================================== Line.cpp

#include "stdafx.h"

#include "Line.h"

#include "math.h"

#define Round(d) int (floor(d+0.5))

CP2::CP2()

{

x=0.0;

y=0.0;

w=1.0;

}

CP2::~CP2()

{}

CP2::CP2( double x,double y)

{

this->x =x;

this->y =y;

this->w =1;

}

CLine::CLine ()

{}

CLine::~CLine ()

{}

void CLine::SetLineColor (COLORREF color)

{

clr=color;

}

void CLine::MoveTo(CP2 p0)

{

P0=p0;

}

void CLine::MoveTo(double x,double y)

{

P0.x =x;

P0.y =y;

}

void CLine::LineTo(double x,double y, CDC*pDC)

{

CP2 p;

p.x =x;

p.y =y;

LineTo(p, pDC);

}

void CLine::LineTo(CP2 p1, CDC*pDC)

{

P1=p1;

CP2 p,t;

if(fabs(P0.x-P1.x)<1e-6)

{

if (P0.y>P1.y)

{

t=P0;P0=P1;P1=t;

}

for (p=P0;p.y

{

pDC->SetPixelV (Round(p.x ),Round(p.y ),clr);

}

}

else

{

double k,d;

k=(P1.y-P0.y)/(P1.x-P0.x);

if (k>1.0)

{

if (P0.y>P1.y)

{

t=P0;P0=P1;P1=t;

}

d=1-0.5*k;

for (p=P0;p.y

{

pDC->SetPixelV (Round(p.x ),Round(p.y ),clr);

if (d>=0)

{

p.x ++;

d+=1-k;

}

else

d+=1;

}

}

if (0.0<=k&&k<=1.0)

{

if (P0.x>P1.x)

{

t=P0;P0=P1;P1=t;

}

d=0.5-k;

for (p=P0;p.x

{

pDC->SetPixelV (Round(p.x ),Round(p.y ),clr); if (d<0)

{

p.y++;

d+=1-k;

}

else

d-=k;

}

}

if (k>=-1.0&&k<0.0)

{

if (P0.x >P1.x )

{

t=P0;P0=P1;P1=t;

}

d=-0.5-k;

for ( p=P0;p.x

{

pDC->SetPixelV (Round(p.x ),Round(p.y ),clr);

if(d>0)

{

p.y --;

d-=1+k;

}

else

d-=k;

}

}

if(k<-1.0)

{

if (P0.y

{

t=P0;P0=P1;P1=t;

}

d=-1-0.5*k;

for ( p=P0;p.y >P1.y ;p.y--)

{

pDC->SetPixelV (Round(p.x ),Round(p.y ),clr);

if(d<0)

{

p.x ++;

d-=1+k;

}

else

d-=1;

}

}

}

P0=p1;

}

第3步

(1)二维图形几何变换矩阵

?平移变换矩阵:

T1=

?旋转变换矩阵

Tr=

?比例变换矩阵

Ts=

?相对于任意参考点的旋转变换矩阵

T(fr)= * *

?相对于任意参考点的比例变换矩阵

T(fs)= * *

(2)新建二维图形几何变换类CTrans2D头文件

?在"FieView (解决方案资源管理器》”视图中,选中”He ader Files”文件夹。

?选择菜单Fie>New",弹出图所示对话框,默认在Files选项卡中。左侧类型框里选中”C/C++ Headr File";, 右边确定"Add a project”然后填写”File”下的文件名称“CTrans2D”。

?设置完成后,点击“OK”即可自动新建“CTrans2D.h"空头文

件。

成员变量应包括记录图形变换顶点的二维顶点数组和记录顶点个数的整数,成员函数应包括3*3矩阵乘法运算函数,变换矩阵重置函数,平移、比例、旋转二维变换函数,以及相对于任意参考点的二维复合变换函数。“CTrans2D.h”头文件中具体类型声明代码如下:

CTrans2D.h

#pragma once

#include "Line.h"

class CTrans2D

{

public:

CTrans2D();

virtual~CTrans2D();

void SetPoints(CP2 *,int);

void Identity();

void Translate(double,double);

void Rotate(double);

void Scale(double,double);

void RotatePoint(double, CP2);

void ScalePoint(double,double, CP2);

protected:

void MultiMatrix();

public:

double m_aT[3][3];

CP2 *m_pPoints;

int m_iNum;

};

(3)新建二维图形几何变换类CTrans2D源文件

?在"FileView(解决方案资源管理器)”视图中,选中“Source Files”文件夹。

?选择菜单"File->New”,弹出图所示对话框,默认在“Files”选项卡。左侧类型框里选中“C/C++ Source File";右边确定“Add to project”被勾选,然后填写"File"下的文件名称“CTrans2D”(需与头文件一致)。

?设置完成后,点击“OK"即可自动新建“CTrans2D.cpp”空源文件。

CTransD.cpp”源文件中具体实现代码如下: CTrans2D.cpp

#include "stdafx.h"

#include "CTrans2D.h"

#include "math.h"

#define IP 3.14159

CTrans2D::CTrans2D()

{}

CTrans2D::~CTrans2D()

{}

void CTrans2D::SetPoints(CP2*p,int n)

{

m_pPoints=p;

m_iNum=n;

}

void CTrans2D::Identity()

{

m_aT[0][0]=1.0; m_aT[0][1]=0.0; m_aT[0][2]=0.0;

m_aT[1][0]=0.0; m_aT[1][1]=1.0; m_aT[1][2]=0.0;

m_aT[2][0]=0.0; m_aT[2][1]=0.0; m_aT[2][2]=1.0; }

void CTrans2D::Translate(double tx,double ty)

{

Identity();

m_aT[2][0]=tx;

m_aT[2][1]=ty;

MultiMatrix();

}

void CTrans2D::Rotate(double beta)

{

Identity();

double rad=beta*IP/180;

m_aT[0][0]=cos (rad); m_aT[0][1]=sin (rad);

m_aT[1][0]=sin (rad); m_aT[1][1]=cos (rad);

MultiMatrix();

}

void CTrans2D::Scale(double sx,double sy)

{

Identity();

m_aT[0][0]=sx;

m_aT[1][1]=sy;

MultiMatrix();

}

void CTrans2D::RotatePoint(double beta, CP2 p)

{

Translate(-p.x ,-p.y );

Rotate(beta);

Translate(p.x ,p.y );

}

void CTrans2D::ScalePoint(double sx,double sy, CP2 p)

{

Translate(-p.x ,-p.y );

Scale(sx,sy);

Translate(p.x ,p.y );

}

void CTrans2D:: MultiMatrix()

{

CP2 *PNew=new CP2 [m_iNum];

for (int i=0;i

{

PNew[i]=m_pPoints[i];

}

for (int j=0;j

{

m_pPoints[j].x

=PNew[j].x*m_aT[0][0]+PNew[j].y*m_aT[1][0]+PNew[j].w*m_aT[2][0];

m_pPoints[j].y=PNew[j].x*m_aT[0][1]+PNew[j].y*m_aT[1][1]+PNew[j].w*m_aT[2][1];

m_pPoints[j].w

=PNew[j].x*m_aT[0][2]+PNew[j].y*m_aT[1][2]+PNew[j].w*m_aT[2][2];

}

delete []PNew;

}

第3步:调用二维图形几何变换类转动、缩放菱形线框图

直接在CTestView:: OnDraw ()函数中进行菱形线框图的填充,只需新建CFillPoly类对象,设置顶点序列为菱形的ABCD 顶点,并设置合适的填充色给顶点数据,按照有效边表填充算法实现步骤依次调用成员函数即可。具体实现代码如下(带底纹部分为修改添加的代码):

#include "CTrans2D.h"

void CTestsView::OnDraw(CDC* pDC)

{

CTestsDoc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

// TODO: add draw code for native data here

CRect rect;

GetClientRect(&rect);

pDC->SetMapMode(MM_ANISOTROPIC);

pDC->SetWindowExt(rect.Width(),rect.Height());

pDC->SetViewportExt(rect.Width(),-rect.Height());

pDC->SetViewportOrg(rect.Width()/2,rect.Height()/2);

CDC MemDC;

CBitmap NewBitmap,*pOldBitmap;

MemDC.CreateCompatibleDC(pDC);

NewBitmap.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());

pOldBitmap=MemDC.SelectObject(&NewBitmap);

MemDC.FillSolidRect(rect,pDC->GetBkColor());

MemDC.SetMapMode(MM_ANISOTROPIC);

MemDC.SetWindowExt(rect.Width(),rect.Height());

MemDC.SetViewportExt(rect.Width(),-rect.Height());

MemDC.SetViewportOrg(rect.Width()/2,rect.Height()/2);

CLine *line=new CLine;

line->SetLineColor(RGB(0,0,0));

line->MoveTo(CP2(-rect.Width()/2,0));

line->LineTo(CP2(rect.Width()/2,0),&MemDC);

line->MoveTo(CP2(0,-rect.Width()/2,0));

line->LineTo(CP2(0,rect.Width()/2),&MemDC);

int a=200;

CP2 points[4];

points[0].x=0,points[0].y=a;

points[1].x=a,points[1].y=0;

points[2].x=0,points[2].y=-a;

points[3].x=-a,points[3].y=0;

CP2 A(0,a)

CTrans2D tans;

tans.SetPoints(points,4);

static float s=1.0;

static float step=0.01;

if (s>=2.0||s<=0.5)

step=-step;

tans.ScalePoint(s,s,A);

static float theta = 0.0;

theta +=1.0;

if(theta>=360.0)

theta =0.0;

tans.RotatePoint(theta,A);

line->SetLineColor (RGB(0,55,199));

line->MoveTo (points[0]);

line->LineTo (points[1],&MemDC);

line->SetLineColor (RGB(90,55,0));

line->LineTo (points[2],&MemDC);

line->SetLineColor (RGB(10,0,0));

line->LineTo (points[3],&MemDC);

line->SetLineColor (RGB(50,200,0));

line->LineTo (points[0],&MemDC);

delete line;

pDC->BitBlt(-rect.Width()/2,-rect.Height()/2,rect.Width(),rect.Height(),&MemDC, -rect.Width()/2,-rect.Height()/2,SRCCOPY);

MemDC.SelectObject(pOldBitmap);

NewBitmap.DeleteObject();

Invalidate(FALSE);

s+=step;.

tans.ScalePoint(s,s,A);

static float theta = 0.0;

theta +=1.0;

if(theta>=360.0)

theta =0.0;

tans.RotatePoint(theta,A);

line->SetLineColor(RGB(255,0,0));

line->MoveTo(points[0]);

line->LineTo(points[1],&MemDC);

line->SetLineColor(RGB(0,255,0));

line->LineTo(points[2],&MemDC);

line->SetLineColor(RGB(0,255,0));

line->LineTo(points[3],&MemDC);

line->SetLineColor(RGB(0,255,0));

line->LineTo(points[0],&MemDC);

delete line;

//将内存位图拷贝到屏幕

pDC->BitBlt(-rect.Width()/2,-rect.Height()/2,rect.Width(),rect.Height(),&MemDC, -rect.Width()/2,-rect.Height()/2,SRCCOPY);

MemDC.SelectObject(pOldBitmap);

NewBitmap.DeleteObject();

Invalidate(FALSE);

四实验结果

五总结与讨论

二维图形几何变换实验中需要用到第二次试验直线扫描算法,是在这次实验的基础上进行的,二维图形几何变换十分神奇,在试验期间,又让我认识到矩阵在各方面的强大作用和神奇之处。

二维几何图形变换.

// 二维几何图形变换.cpp : 定义应用程序的类行为。 // #include "stdafx.h" #include "二维几何图形变换.h" #include "MainFrm.h" #include "二维几何图形变换Doc.h" #include "二维几何图形变换View.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CMyApp BEGIN_MESSAGE_MAP(CMyApp, CWinApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) // 基于文件的标准文档命令 ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) // 标准打印设置命令 ON_COMMAND(ID_FILE_PRINT_SETUP, CWinApp::OnFilePrintSetup) END_MESSAGE_MAP() // CMyApp 构造 CMyApp::CMyApp() { // TODO: 在此处添加构造代码, // 将所有重要的初始化放置在InitInstance 中 } // 唯一的一个CMyApp 对象 CMyApp theApp; // CMyApp 初始化 BOOL CMyApp::InitInstance() {

// 如果一个运行在Windows XP 上的应用程序清单指定要 // 使用ComCtl32.dll 版本6 或更高版本来启用可视化方式, //则需要InitCommonControls()。否则,将无法创建窗口。 InitCommonControls(); CWinApp::InitInstance(); // 初始化OLE 库 if (!AfxOleInit()) { AfxMessageBox(IDP_OLE_INIT_FAILED); return FALSE; } AfxEnableControlContainer(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); LoadStdProfileSettings(4); // 加载标准INI 文件选项(包括MRU) // 注册应用程序的文档模板。文档模板 // 将用作文档、框架窗口和视图之间的连接 CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CMyDoc), RUNTIME_CLASS(CMainFrame), // 主SDI 框架窗口 RUNTIME_CLASS(CMyView)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate); // 分析标准外壳命令、DDE、打开文件操作的命令行 CCommandLineInfo cmdInfo; ParseCommandLine(cmdInfo); // 调度在命令行中指定的命令。如果 // 用/RegServer、/Register、/Unregserver 或/Unregister 启动应用程序,则返回FALSE。if (!ProcessShellCommand(cmdInfo)) return FALSE; // 唯一的一个窗口已初始化,因此显示它并对其进行更新 m_pMainWnd->ShowWindow(SW_SHOW); m_pMainWnd->UpdateWindow();

几何画板十个实例教学教程

几何画板实例教程:(1)模拟时钟 1,制作表盘 打开图表----定义坐标系,以原点为圆心构造圆O,右击圆周选选择粗线,颜色任意。在圆周上取点B,选取点O、B打开菜单变换---缩放选择固定比为4:5得到点B′ 构造线段BB′右击选择粗线,选择点O 打开变换标记中心,选择线段BB′(不要断点)打开菜单变换---旋转六十度,同理旋转十一次得到 。

在圆周任意取点C,选取O和C打开菜单变换---缩放,固定比选择为9:10 得到C′构造线段CC′,选取点C和线段CC′变换旋转6°,C旋转得到点D,然后选取点C打开菜单变换---迭代,影像选择点D,迭代次数操作键盘加号得到58次:

设y轴与圆的交点为E以点0为缩放中心将点E分别缩放90%,60℅,30%,得到点F、G、H隐藏网格和坐标轴,分别构造线段OF,OG,OH并设置为虚线、细线、粗线得到图:到此为止表盘完成了。 2:制作按钮操作时钟 打开菜单图标—新建参数标签改为秒,值的精确度选择为百分之一 打开菜单度量---计算,使用函数trunc分别计算一下结果:秒针旋转的角度、分针的旋转角度、时针的旋转角度。

选取参数“秒=1”打开编辑---操作类按钮—动画 范围设置为0到86400(一天一夜二十四小时共86400秒),标签改为“启动时钟”。 再次选择参数秒同上面一样打开动画按钮,不同的是把范围改为0到0.001,(此范围保证各指针的旋转的角度为0°),标签改为“归零”

选取打开菜单变换---标记角度,然后选取秒针(即图中的虚线)做变换—旋转变换,同理再分别选取分针和时针的旋转角度

做分针和时针的旋转变换。 此时点击启动时钟和归零就可以得到时钟的转动的效果了。(没有用的线可以隐藏了) 3.制作合并文本 用文本工具分别作时、分、秒三个独立的文本 再分别打开度量---计算下面三个值: 此结果是小时的取整; 此结果是秒的显示数字; 此结果为分的显示数字 分别右键单击三个结果选择属性—值的精确度选择单位。 依次选择下面的文本和值打开菜单编辑—合并文本

遥感实验报告

遥感原理与应用 实验报告 姓名:学号:学院:专业: 年月日 实验一: erdas视窗的认识实验 一、实验目的 初步了解目前主流的遥感图象处理软件erdas的主要功能模块,在此基础上,掌握几个视窗操作模块的功能和操作技能,为遥感图像的几何校正等后续实习奠定基础。 二、实验步骤 打开imagine 视窗 启动数据预处理模块 启动图像解译模块 启动图像分类模块 imagine视窗 1.数据预处理(data dataprep) 2.图像解译(image interpreter) 主成份变换 色彩变换 3.图像分类(image classification) 非监督分类 4. 空间建模(spatial modeler) 模型制作工具 三、实验小结 通过本次试验初步了解遥感图象处理软件erdas的主要功能模块,在此基础上,基本掌握了几个视窗操作模块的功能和用途。为后续的实验奠定了基础。 实验二遥感图像的几何校正 掌握遥感图像的纠正过程 二、实验原理 校正遥感图像成像过程中所造成的各种几何畸变称为几何校正。几何校正就是将图像数据投影到平面上,使其符合地图投影系统的过程。而将地图投影系统赋予图像数据的过程,称为地理参考(geo-referencing)。由于所有地图投影系统都遵循一定的地图坐标系统,因此几何校正的过程包含了地理参考过程。 几何校正包括几何粗校正和几何精校正。地面接收站在提供给用户资料前,已按常规处理方案与图像同时接收到的有关运行姿态、传感器性能指标、大气状态、太阳高度角对该幅图像几何畸变进行了几何粗校正。利用地面控制点进行的几何校正称为几何精校正。一般地面站提供的遥感图像数据都经过几何粗校正,因此这里主要进行一种通用的精校正方法的实验。该方法包括两个步骤:第一步是构建一个模拟几何畸变的数学模型,以建立原始畸变图像空间与标准图像空间的某种对应关系,实现不同图像空间中像元位置的变换;第二步是利用这种对应关系把原始畸变图像空间中全部像素变换到标准图像空间中的对应位置上,完成标准图像空间中每一像元亮度值的计算。 三、实验内容 根据实验的数据,对两张图片进行几何纠正 四、实验流程

几何画板视频教程全集(完整)(完整资料).doc

此文档下载后即可编辑 几何画板视频教程全集(完整) 一、绘制几何图形和几何体[本章实例下载] 实例1 利用画点工具任意画三点 实例2 绘制线段 实例3 绘制过同一点的三条直线 实例4 绘制相同端点的三条射线 实例5 绘制三个同心圆 实例6 绘制共点圆 实例7 绘制圆在第一象限内的部分 实例8 绘制三角形的中线 实例9 绘制三角形的三条角平分线 实例10 绘制三角形的三条高 实例11 绘制相邻两边可以随意改变的平行四边形实例12 绘制菱形 实例13 绘制梯形的中位线 实例14 绘制等腰梯形 实例15 绘制正三角形 实例16 绘制正五边形 实例17 绘制关于某条直线对称的两个全等的三角形实例18 绘制关于某点对称的两个三角形 实例19 绘制相似三角形 实例20 绘制五角星 实例21 绘制正方体 实例22 绘制相邻三条棱可改变的三棱柱 实例23 绘制三棱台 实例24 绘制圆柱 实例25 绘制圆锥 实例26 绘制圆台

二、制作度量型课件[本章实例下载] 实例1 验证三角形的中位线定理 实例2 验证圆幂定理 实例3 验证三角形内角和 实例4 验证圆周角与圆心角的关系实例5 验证同底等高三角形面积相等实例6 验证三角形的面积公式 实例7 验证勾股定理 实例8 验证两点间的距离公式 实例9 验证正弦定理 实例10 验证两平行线间的斜率关系实例11 验证余弦定理 实例12 绘制分段函数

三、制作图像型课件[本章实例下载] 实例1 二次函数的图像 实例2 指数函数的图像 实例3 对数函数的图像 实例4 函数y=sinx的图像 实例5 绝对值函数的图像 实例6 可变系数的二次函数的图像 实例7 可变系数的三角函数的图像 实例8 定义在区间[a,b]上的函数的图像实例9 椭圆的参数方程 实例10 星形线 实例11 圆锥曲线的统一方程 实例12 心脏线

遥感实验报告

重庆交通大学 学生实验报告 实验课程名称遥感原理与应用 开课实验室测量与空间信息处理实验室 学院 2013 年级测绘工程专业 1班学生姓名刘文洋 学号 631301040126 开课时间 2015 至 2016 学年第 1 学期

目录 实验一 ENVI 视窗的基本操作 (2) 实验二遥感图像的几何校正 (4) 实验三遥感图像的增强处理 (8) 实验四遥感图像的变换 (12) 实验五遥感信息的融合 (15) 实验六遥感图像分类 --- 监督分类 (17) 实验七遥感图像分类 --- 非监督分类 (19) 实验八遥感图像分类后处理 (22)

实验一ENVI 视窗的基本操作 一、实验目的 初步了解目前主流的遥感图象处理软件 ENVI 的主要功能模块,在此基础上,掌握视窗操作模块的功能和操作技能,为遥感图像的几何校正等后续实习奠定基础。 二、实验内容 视窗功能介绍;文件菜单操作;显示数据;裁剪数据;合并波段 三、实验步骤 1、首先打开ENVI4.7软件,看见的只有菜单栏,如图所示: 2、打开每个下拉菜单浏览其下拉栏中都有哪些功能,比如:我们如果需要打开遥感文件,则可以选择File下的打开功能open image file,打开遥感图像如下图:

裁剪数据打开basic tools的resize data功能,如果需要对图像进行一系列处理,可以利用Transform,Classification等功能进行操作,在后续实验中我们也会用到其中的一些功能进行图像的一系列操作,到时候在详细叙述。 3、再熟悉了ENVI4.7的一些基本知识后我们可以简单地操作下,比如对一组数据分别用Gray Scale和Load RGB导入,看看两幅图的区别以及各自的优缺点。 四、实验结果分析 在这次的实验中,我们简单的熟悉了下ENVI4.7的一些功能,发现它是可以对遥感图像进行图像几何纠正,直方图均衡,监督分类,非监督分类等一系列操作,为我们后续利用软件对遥感图像处理打下了基础。

实验报告二 Matlab图像代数运算和几何变换

实验二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)索引色图像

最全的几何画板实例教程

上篇用几何画板做数理实验 图1-0.1 我们主要认识一下工具箱和状态栏,其它的功能在今后的学习过程中将学会使用。 案例一四人分饼 有一块厚度均匀的三角形薄饼,现在要把它平 均分给四个人,应该如何分? 图1-1.1 思路:这个问题在数学上就是如何把一个三角形分成面积相等的四部分。 方案一:画三角形的三条中位线,分三角形所成的四部 分面积相等,(其实四个三角形全等)。如图1-1.2。 图1-1.2

方案二:四等分三角形的任意一边,由等底等高的三角形面积相等,可以得出四部分面积相等,如图1-1.3。 图1-1.3 用几何画板验证: 第一步:打开几何画板程序,这时出现一个新绘图文件。 说明:如果几何画板程序已经打开,只要由菜单“文件”→“新绘图”,也可以新建一个绘图文件。 第二步:(1)在工具箱中选取“画线段”工具; (2)在工作区中按住鼠标左键拖动,画出一条线段。如图 1-1.4。 注意:在几何画板中,点用一个空心的圈表示。 图1-1.4 第三步:(1)选取“文本”工具;(2)在画好的点上单击左键,可以标出两点的标签,如图1-1.5: 注意:如果再点一次,又可以隐藏标签,如果想改标签为其它字母,可以这样做: 用“文本”工具双击显示的标签,在弹出的对话框中进行修改,(本例中我们不做修改)。如图 1-1.6 图1-1.6 在后面的操作中,请观察图形,根据需要标出点或线的标签,不再一一说明 B 图1-1.5 第四步:(1)再次选取“画线段”工具,移动鼠标与点A 重合,按左键拖动画出线段AC ;(2)画线段BC ,标出标签C ,如图1-1.7。 注意:在熟悉后,可以先画好首尾相接的三条线段后再标上标签更方便。 B 图1-1.7 第五步:(1) 用“选择”工具单击线段AB ,这时线段上出现两个正方形的黑块,表示线段处于被选取状态;(2) 由菜单“作图”→“中点”,画出线段AB 的中点,标上标签。得如图1-1.8。 注意:如果被选取的是点,点的外面会有一个粗黑圆圈。在几何画板中,选取线段是不包括它的两个端点的,以后的问题都是这样,如果不小心多选了某个对象,可以 B C D 图1-1.8

实验三 遥感图像的几何校正

实验法三遥感图像的几何校正 一实验目的 通过实验操作,掌握遥感图像几何校正的基本方法和步骤,深刻理解遥感图像几何校正的意义。 二实验内容 ERDAS软件中图像预处理模块下的图像几何校正。 几何校正就是将图像数据投影到平面上,使其符合地图投影系统的过程。而将地图投影系统赋予图像数据的过程,称为地理参考(Geo-referencing)。由于所有地图投影系统都遵循一定的地图坐标系统,因此几何校正的过程包含了地理参考过程。 1、图像几何校正的途径 ERDAS图标面板工具条:点击DataPrep图标,→Image Geometric Correction →打开Set Geo-Correction Input File对话框(图1)。 ERDAS图标面板菜单条:Main→Data Preparation→Image Geometric Correction→打开Set Geo-Correction Input File对话框(图1)。 图1 Set Geo-Correction Input File对话框 在Set Geo-Correction Input File对话框(图1)中,需要确定校正图像,有两种选择情况: 其一:首先确定来自视窗(From Viewer),然后选择显示图像视窗。 其二:首先确定来自文件(From Image File),然后选择输入图像。 2、图像几何校正的计算模型(Geometric Correction Model) ERDAS提供的图像几何校正模型有7种,具体功能如下: 表1 几何校正计算模型与功能 模型功能 Affine 图像仿射变换(不做投影变换) Polynomial 多项式变换(同时作投影变换) Reproject 投影变换(转换调用多项式变换) Rubber Sheeting 非线性变换、非均匀变换 Camera 航空影像正射校正 Landsat Lantsat卫星图像正射校正 Spot Spot卫星图像正射校正 其中,多项式变换(Polynomial)在卫星图像校正过程中应用较多,在调用多项式模型时,需要确定多项式的次方数(Order),通常整景图像选择3次方。次方数与所需要的最

opengl立方体的简单三维交互式几何变换实验报告+代码

立方体的简单三维交互式几何变换 这个学期对opengl的学习,使我对计算机图形学的一些算法过程有了更多的了解。因为对三维图形的显示比较感兴趣,就做了立方体的简单三维交互式几何变换。 功能:键盘的方向键实现立方体的上下左右平移;A键,S键分别实现向前,向后旋转;J键,K键分别实现放大,缩小;C键退出。 程序模块: 1.该模块为绘制一个立方体。 void DrawBox() { glBegin(GL_QUADS); //前面 glColor3f(1,0,0); glVertex3f(-1.0f, -1.0f, 1.0f); // 四边形的左下 glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的右下 glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右上 glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左上 // 后面 glColor3f(0,1,0); glVertex3f(-1.0f, -1.0f, -1.0f); // 四边形的右下 glVertex3f(-1.0f, 1.0f, -1.0f); // 四边形的右上

glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的左下 // 顶面 glColor3f(0,0,1); glVertex3f(-1.0f, 1.0f, -1.0f); // 四边形的左上glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左下glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右下glVertex3f( 1.0f, 1.0f, -1.0f); // 四边形的右上// 底面 glColor3f(1,1,0); glVertex3f(-1.0f, -1.0f, -1.0f); // 四边形的右上glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的左上glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的左下glVertex3f(-1.0f, -1.0f, 1.0f); // 四边形的右下// 右面 glColor3f(0,1,1); glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的右下glVertex3f( 1.0f, 1.0f, -1.0f); // 四边形的右上glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的左上glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的左下// 左面 glColor3f(1,0,1);

二维图形基本变换规则及应用

二维图形基本变换规则及应用 (07级信息与计算科学傅强070350221) 摘要 利用计算机绘制的图形与我们日常见到的图片、照片是有相似之处。除图片、照片等图形外,自然界中还存在丰富多彩的有形物体。一般,根据图形所在空间的不同,可将图形分为:三维图形和二维图形。图片、照片属二维图形,自然界中形形色色的物体属于三维图形。在计算机绘图的过程中,二维图形的绘制是绘制三维图形的基础,研究计算机图形的生成必须从研究二维图形开始。计算机绘制图形时,无论图形多么复杂,都是利用一些相应图形基元经过图形变换组成的。在计算机绘图中,经常用到图形变换,图形变换是指图形信息经过几何变换后产生新的图形。基本的几何变换研究物体坐标在直角坐标系内的平移、旋转和变比等规则。本文主要介绍二维图形的一些基本变换规则及其应用 关键词:直角坐标系内;平移;旋转;应用 ABSTRACT Using the computer graphics and see our daily drawings, photographs are similarities. Besides the drawings, photographs and other graphic, nature also exist rich and colorful tangible objects. In general, according to the different space, the graphics can be divided into: 3d graphics and 2d graphics. The drawings, photographs of 2d graphics, all kinds of objects in the nature belongs to 3d graphics. In computer graphics, the process of 2d graphics rendering 3d graphics drawing is the basis, research of computer graphics generation must start from the 2d graphics. Computer graphics, no matter how complex, graphics are using some corresponding graphic element composed by graphical transformation. In computer graphics, often use graphics transformation, graphics transform refers to the graphical information through after new graphics geometry transform. The basic research object coordinate geometry transform in cartesian coordinate system in translation, rotation and change rules than etc. This paper mainly introduces some basic transformation of 2d graphics and its application in the rules. Keywords: a cartesian coordinate system, Translation, Rotating, application

多时相遥感图像配准实验报告

Harbin Institute of Technology 多时相遥感图像配准 实验报告 课程名称:遥感信息处理导论 院系:电子与信息工程学院 姓名: 学号: 授课教师: 哈尔滨工业大学

1. 实验目的 对于通过遥感平台获取的遥感数字影像,由于扫描过程中受地球曲率、地球自转、平台姿态、扫描方式等因素的影响,所获取的图像往往会产生不同程度的几何误差,这些误差如若不经处理,对图像的后续应用如分类、目标检测等会产生很大影响。本实验的目的就是利用多项式映射和重采样等方法对两幅不同时间采集的遥感图像进行几何校正处理,从而方便从配准图像中找到不同时相内发生变化的地物目标信息。 2. 实验原理 图像的配准过程主要可以分为三个过程:控制点对选取(自动或手动)、坐标映射函数拟合、映射后像素重采样。 1) 控制点对选取 对于图像匹配过程,首先要通过控制点对建立两幅图像间的坐标联系。控制点的选取有可分为自动和手动两种方式。对于自动选取,可以采用SIFT 等算法实现;对于手动选取,需要实验人员通过目测观察的方法找到不同时相的遥感图像中的相同目标,这些控制点可以是建筑物的顶点、道路等的交叉点等或其他较容易分辨的位置。 选出控制点后将这些点的坐标信息记录下来,值得注意的是所选控制点的数量、分布情况以及精度会直接影响配准结果的精度和质量。 2) 图像几何校正 图像的配准实质上就是通过图像的几何校正,将产生几何失真的图像转换为标准的数字图像。采用的方法就是通过一定的映射函数将原图像的像素坐标转换为标准图像中的坐标 (,)u f x y = (,)v g x y = 其中(,)x y 表示原图像中的像素坐标值,(,)u v 表示参考图像中的像素坐标值。 映射函数的选择可以有多种形式,一般较为简单常用的是多项式函数,以二次多项式函数为例,映射函数的具体形式为 22 01234522 012345u a a x a y a xy a x a y v b b x b y b xy b x b y ?=+++++?=+++++? 其中,05, ,a a ,05,,b b 分别表示二次多项式横纵坐标映射函数中对应项的系 数,通过选定控制点,可以将这些系数项求解出来。 假设在两幅图像中总共选择了n 对控制点,根据n 对控制点的坐标 (,)~(,)i i i i x y u v 可以得到如下两个方程组,

X-opengl立方体的简单三维交互式几何变换实验报告代码

立方体的简单三维交互式几何变换 立方体的简单三维交互式几何变换。 功能:键盘的方向键实现立方体的上下左右平移;A键,S键分别实现向前,向后旋转;J键,K键分别实现放大,缩小;C键退出。 程序模块: 1.重绘回调函数,在窗口首次创建或用户改变窗口尺寸时被调用。void reshape(int w, int h) { glViewport(0, 0, w, h);// 指定视口的位置和大小 glMatrixMode(GL_PROJECTION); glLoadIdentity(); //glFrustum(-1.0, 1.0, -1.0, 1.0, 3.1, 10.0); //gluPerspective(45,1,0.1,10.0); glOrtho(-2.0, 2.0, -2.0, 2.0, 2.0, 10.0); } 2.绘制一个立方体。 void DrawBox() { glBegin(GL_QUADS); //前面

glColor3f(1,0,0); glVertex3f(-1.0f, -1.0f, 1.0f); // 四边形的左下glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的右下glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右上glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左上// 后面 glColor3f(0,1,0); glVertex3f(-1.0f, -1.0f, -1.0f); // 四边形的右下glVertex3f(-1.0f, 1.0f, -1.0f); // 四边形的右上glVertex3f( 1.0f, 1.0f, -1.0f); // 四边形的左上glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的左下 // 顶面 glColor3f(0,0,1); glVertex3f(-1.0f, 1.0f, -1.0f); // 四边形的左上glVertex3f(-1.0f, 1.0f, 1.0f); // 四边形的左下glVertex3f( 1.0f, 1.0f, 1.0f); // 四边形的右下glVertex3f( 1.0f, 1.0f, -1.0f); // 四边形的右上// 底面 glColor3f(1,1,0); glVertex3f(-1.0f, -1.0f, -1.0f); // 四边形的右上glVertex3f( 1.0f, -1.0f, -1.0f); // 四边形的左上glVertex3f( 1.0f, -1.0f, 1.0f); // 四边形的左下

的几何画板实例教程

上篇用几何画板做数理实验 图1-0、1 我们主要认识一下工具箱与状态栏,其它的功能在今后的学习过程中将学会使用。 案例一四人分饼 有一块厚度均匀的三角形薄饼,现在要把它平 均分给四个人,应该如何分? 图1-1、1 思路:这个问题在数学上就就是如何把一个三角形分成面积相等的四部分。 方案一:画三角形的三条中位线,分三角形所成的四部分 面积相等,(其实四个三角形全等)。如图1-1、2。 图1-1、2

方案二:四等分三角形的任意一边,由等底等高的三角形面积相等,可以得出四部分面积相等,如图1-1、3。 图 1-1、3 用几何画板验证: 第一步:打开几何画板程序,这时出现一个新绘图文件。 说明:如果几何画板程序已经打开,只要由菜单“文件”→“新绘图”,也可以新建一个绘图文件。第二步:(1)在工具箱中选取“画线段”工具; (2)在工作区中按住鼠标左键拖动,画出一条线段。如图 1-1、4。 注意:在几何画板中,点用一个空心的圈表示。 图1-1、4 第三步:(1)选取“文本”工具;(2)在画好的点上单击左键, 可以标出两点的标签,如图1-1、5: 注意:如果再点一次,又可以隐藏标签,如果想改标签为其它字母,可以这样做: 用“文本”工具双击显示的标签,在弹出的对话框中进行修改,(本例中我们不做修改)。如图1-1、6 图1-1、6 在后面的操作中,请观察图形,根据需要标出点或线的标签,不再一一说明 B 图1-1、5 第四步:(1)再次选取“画线段”工具,移动鼠标与点A重 合,按左键拖动画出线段AC;(2)画线段BC,标出标签C,如 图1-1、7。 注意:在熟悉后,可以先画好首尾相接的三条线段后再标 上标签更方便。 B 图1-1、7 第五步:(1) 用“选择”工具单击线段AB,这时线段上出现 两个正方形的黑块,表示线段处于被选取状态;(2) 由菜单 “作图”→“中点”,画出线段AB的中点,标上标签。得 如图1-1、8。 注意:如果被选取的就是点,点的外面会有一个粗黑圆 圈。在几何画板中,选取线段就是不包括它的两个端点 的,以后的问题都就是这样,如果不小心多选了某个对象,可以按Shi f t键后用左键再次单击该对象取消选取。 B D 图1-1、8

ENVI实验报告

一、实验目的 ENVI是一套功能齐全的遥感图像处理系统,是处理、分析并显示多光谱数据、高光谱数据 和雷达数据的高级工具。此次实习主要是学习一些关于ENVI的基本操作,如:图像预处理,影像分析,图像增强,几何校正,监督分类以及专题制图等步骤。 二、实验数据 ELEVATION_SOURCE = "GLS2000" EPHEMERIS_TYPE = "DEFINITIVE" SPACECRAFT_ID = "Landsat7" SENSOR_ID = "ETM+" SENSOR_MODE = "SAM" ACQUISITION_DATE = 2000-09-24 WRS_PATH = 144 三、实验内容 1.遥感数据下载 2.数据格式转化及多波段的合成 3.图像边框的裁剪 4.图像的镶嵌 6.图像几何校正 7.裁剪 8.监督分类 9.专题出图 四、实验步骤 1.遥感数据下载 输入地名及日期,搜索符合自己通途的数据,查看并下载

2.数据格式转化及多波段的合成 由于下载图像的格式tif格式,需要转成img格式。并将单波段融合成为多波段,这一步在erdas中完成。 tif转img 单波段融合成多波段 3.图像边框的裁剪 通过主图像窗口-tools-region?of?interest-roi?tool,然后自己在图像上定义出一块感兴趣区(实际中难于确定严格准确的裁剪界限)。 4.图像的镶嵌 Map→mosaicking→georeferenced 启动镶嵌模板 6.图像几何校正 设置参数,参数在原始数据中的txt中可以查看 启动校正模块,并利用google地球进行校正 7.裁剪 分别打开需要裁剪的图像和所在区域的shapefile文件 将矢量文件转成ROI 利用ROI裁剪图像 选择主菜单→basic tools→subset data via ROIS,选择裁剪图像 在spatial subset via ROI parameters中,选择由矢量生成的

几何画板课件制作实例教程

几何画板课件制作实例教程_小学数学篇 几何画板课件制作实例教程 第一章小学数学 1. 1数与代数 实例1 整数加法口算出题器 实例2 5以内数的分成 实例3 分数意义的动态演示 实例4 求最大公约数和最小公倍数 实例5 直线上的追及问题 1.2 空间与图形 实例6 三角形分类演示 实例7 三角形三边的关系 实例8 三角形内角和的动态演示 实例9 三角形面积公式的推导 实例10 长方形周长的动态演示 实例11 长方体的初步认识 实例12 长方体的体积 1.3 统计与概率 实例13 数据的收集与整理 实例14 折线统计图 “几何画板”软件以其动态探究数学问题的功能,为数学教育活动施行“动手实践、自主探索、合作交流”的学习方式提供了可能性。经笔者们的尝试,她除了

可在小学数学中“空间与图形”这个学习领域中大展手脚,在“数与代数”、“统计与概率”这两个学习领域中,同样也能折射出其独特的魅力光芒。 小学生的数学学习心理的特点决定其数学学习活动需以直观的形象作为探索数学问题的支撑,以操作、实验作为主要途径之一。因此,本章实例课件的制作以几何画板善于表现数学思想的特色积极渗透各种数学思想,注重以课件所蕴含的思想推行“致力于改变学生的学习方式”教学策略,同时也努力实现学生个体在自主操作与学习课件中充分进行“观察、实验、猜测、验证、推理与交流”等数学活动,促使学生在课件的引导下亲身体验“做数学”,实现数学的“再创造”。 1. 1数与代数 培养学生的数感与符号感是“数与代数”学习内容的一个很重要的目标,而采用几何画板能较轻易地实现“数形结合”。以“数形结合”的方式可帮助小学生体会数与运算的意义以及其所含的数学思想。因此,本节实例课件的设计体现了促进学生经历从实际问题到抽象出数与运算的全过程的观念,同时也充分展露了几何画板善于以直观的图形表现抽象的数学思想的特点。 实例1 整数加法口算出题器 【课件效果】 新课程标准规定:小学一年级学生要求熟练掌握20以内整数的口算加减法。编制“口算出题器”类课件,以往可能要在可编程类软件的平台上进行,现在却可以利用几何画板的参数【动画】功能,较轻易地实现。 如图1-1所示,单击按钮,出示随机加法算式,单击按钮,显示当前算式的结果。本实例适用于整数加法意义的教学、20以内的加法口算测试等,显示了信息技术与学科整合的优势。 整数加法口算出题器 4+8= 图1.1 图1-1 课件效果图 【构造分析】 1.技术要点 υ几何画板软件参数【动画】的运用 υ【带参数的迭代】的运用 2.思想分析

遥感图像预处理实验报告

实验前准备:遥感图像处理软件认识 1、实验目的与任务: ①熟悉ENVI软件,主要是对主菜单包含内容的熟悉; ②练习影像的打开、显示、保存;数据的显示,矢量的叠加等。 2、实验设备与数据 设备:遥感图像处理系统ENVI4.4软件; 数据:软件自带数据和河南焦作市影响数据。 3、实验内容与步骤: ⑴ENVA软件的认识 如上图所示,该软件共有12个菜单,每个菜单都附有下拉功能,里面分别包含了一些操作功能。 ⑵打开一幅遥感数据 选择File菜单下的第一个命令,通过该软件自带的数据打开遥感图像,可知,打开一幅遥感影像有两种显示方式。一种是灰度显示,另一种是RGB显示。 Gray(灰度显示)RGB显示 ⑶保存数据 ①选择图像显示上的File菜单进行保存; ②通过主菜单上的Save file as进行保存

⑷光谱库数据显示 选择Spectral > Spectral Libraries > Spectral Library Viewer。将出现Spectral Library Input File 对话框,允许选择一个波谱库进行浏览。点 击“Open Spectral Library”,选择某一所需的 波谱库。该波谱库将被导入到Spectral Library Input File 对话框中。点击一个波谱库的名称, 然后点击“OK”。将出现Spectral Library Viewer 对话框,供选择并绘制波谱库中的波谱曲线。 ⑸矢量化数据 点选显示菜单下的Tools工具栏,接着选择下面的第四个命令,之后选择第一个命令,对遥感图像进行矢量化。点击鼠标左键进行区域选择,选好之后双击鼠标右键,选中矢量化区域。 ⑹矢量数据与遥感影像的叠加与切割 选择显示菜单下的Tools工具,之后点选第一个 Link命令,再选择其下面的第一个命令,之后 OK,结束程序。 选择主菜单下的Basic Tools 菜单,之后选择 其中的第二个命令,在文件选择对话框中,选择 输入的文件(可以根据需要构建任意子集),将 出现Spatial Subset via ROI Parameters 对 话框通过点击矢量数据名,选择输入的矢量数 据。使用箭头切换按钮来选择是否遮蔽不包含在 矢量数据中的像元。 遥感图像的辐射定标 1、实验目的与任务: ①了解辐射定标的原理; ②使用ENVI软件自带的定标工具定标; ③学习使用波段运算进行辐射定标。 2、实验内容与步骤: ⑴辐射定标的原理 辐射定标就是将图像的数字量化值(DN)转化为辐射亮度值或者反射率或者表面温度等

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

实验报告 实验名称:图像处理 姓名:刘强 班级:电信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 利用画点工具任意画三点 实例2 绘制线段 实例3 绘制过同一点的三条直线 实例4 绘制相同端点的三条射线 实例5 绘制三个同心圆 实例6 绘制共点圆 实例7 绘制圆在第一象限内的部分 实例8 绘制三角形的中线 实例9 绘制三角形的三条角平分线 实例10 绘制三角形的三条高 实例11 绘制相邻两边可以随意改变的平行四边形 实例12 绘制菱形 实例13 绘制梯形的中位线 实例14 绘制等腰梯形 实例15 绘制正三角形 实例16 绘制正五边形 实例17 绘制关于某条直线对称的两个全等的三角形 实例18 绘制关于某点对称的两个三角形 实例19 绘制相似三角形 实例20 绘制五角星 实例21 绘制正方体 实例22 绘制相邻三条棱可改变的三棱柱 实例23 绘制三棱台 实例24 绘制圆柱 实例25 绘制圆锥 实例26 绘制圆台

二、制作度量型课件[本章实例下载] 实例1 验证三角形的中位线定理 实例2 验证圆幂定理 实例3 验证三角形内角和 实例4 验证圆周角与圆心角的关系 实例5 验证同底等高三角形面积相等实例6 验证三角形的面积公式 实例7 验证勾股定理 实例8 验证两点间的距离公式 实例9 验证正弦定理 实例10 验证两平行线间的斜率关系实例11 验证余弦定理 实例12 绘制分段函数

实例1 二次函数的图像 实例2 指数函数的图像 实例3 对数函数的图像 实例4 函数y=sinx的图像 实例5 绝对值函数的图像 实例6 可变系数的二次函数的图像 实例7 可变系数的三角函数的图像 实例8 定义在区间[a,b]上的函数的图像实例9 椭圆的参数方程 实例10 星形线 实例11 圆锥曲线的统一方程 实例12 心脏线

相关文档
最新文档