127 王锟计算机图形学解析.docx
- 文档编号:23578840
- 上传时间:2023-05-18
- 格式:DOCX
- 页数:13
- 大小:2.27MB
127 王锟计算机图形学解析.docx
《127 王锟计算机图形学解析.docx》由会员分享,可在线阅读,更多相关《127 王锟计算机图形学解析.docx(13页珍藏版)》请在冰豆网上搜索。
127王锟计算机图形学解析
课程设计报告
题目:
图像处理(ImageProcessing)
课程:
计算机图形学
班级:
12信息与计算科学1班
姓名:
王锟
学号:
20120810010127
学校:
华东交通大学
学院:
理学院
指导老师:
蒋先刚
目录
目录-1-
概述-2-
一、设计需求-3-
2.1设计目的-3-
2.2系统需求分析-3-
2.2.1系统设计主要内容-3-
2.2.2系统开发环境和工具-3-
二、设计原理-4-
三、系统运行界面和功能-4-
四、源程序代码-8-
a.图像放大-8-
b.图像缩小-8-
c.图像浮雕-8-
d.图像曝光-9-
e.灰度图像扩张-10-
心得体会-12-
参考文献-12-
概述
计算机图形学(ComputerGraphics,简称CG)是一种使用数学算法将二维或三维图形转化为计算机显示器的栅格形式的科学。
简单地说,计算机图形学的主要研究内容就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。
是计算机科学的一个分支领域,主要关注数字合成与操作视觉的图形内容。
计算机图形学研究的是应用计算机产生图像的所有工作,不管图像是静态的还是动态的,可交互的还是固定的,等等。
图形API是允许程序员开发包含交互式计算机图形操作的应用而不需要关注图形操作细节或任务系统细节的工具集。
计算机图形学有着广泛的应用领域,包括物理、航天、电影、电视、游戏、艺术、广告、通信、天气预报等几乎所有领域都用到了计算机图形学的知识,这些领域通过计算机图形学将几何模型生成图像,将问题可视化从而为各领域更好的服务。
图像处理就是对图像信息加工以满足人的视觉心理或应用需求的方法。
图像处理方法有光学方法和电子学方法。
从20世纪60年代起随着电子计算机和计算技术的不断提高和普及,数字图像处理进入了高速发展时期,而数字图像处理就是利用数字计算机或其它的硬件设备对图像信息转换而得到的电信号进行某些数学处理以提高图像的实用性。
图像处理在遥感技术,医学领域,安全领域,工业生产中有着广泛的应用,其中在医学应用中的超声、核磁共振和CT等技术,安全领域的模式识别技术,工业中的无损检测技术尤其引人注目。
计算机进行图像处理一般有两个目的:
(1)产生更适合人观察和识别的图像。
(2)希望能由计算机自动识别和理解图像。
数字图像的边缘检测是图像分割、目标区域的识别、区域形状提取等图像分析领域的重要基础,图像处理和分析的第一步往往就是边缘检测。
物体的边缘是以图像的局部特征不连续的形式出现的,也就是指图像局部亮度变化最显著的部分,例如灰度值的突变、颜色的突变、纹理结构的突变等,同时物体的边缘也是不同区域的分界处。
图像边缘有方向和幅度两个特性,通常沿边缘的走向灰度变化平缓,垂直于边缘走向的像素灰度变化剧烈。
根据灰度变化的特点,图像边缘可分为阶跃型、房顶型和凸缘型。
1、设计需求
2.1设计目的
以图形学算法为目标,从理论上对几种经典的边缘检测算法进行分析,并用Delphi实现这些算法,深入研究。
继而策划、设计并实现一个能够表现计算机图形学算法原理的或完整过程的演示系统,并能从某些方面作出评价和改进意见。
通过完成一个完整程序,经历策划、设计、开发、测试、总结和验收各阶段,达到:
巩固和实践计算机图形学课程中的理论和算法;最后,通过实例图像对不同边缘检测算法的效果进行分析,找出各种算法的适用范围。
通过本课题的研究学习表现计算机图形学算法的技巧;培养认真学习、积极探索的精神。
2.2系统需求分析
2.2.1系统设计主要内容
1.实现图像导入(可以打开新的图像实现处理)
2.实现图像放大和缩小(改变图像的大小产生新的图像)
3.实现图像曝光(曝光的原则是,我们应该判断这三个组件RGB值是否小于128,则颠倒这个组件的值。
换句话说,我们将这个组件的值是255减去旧值)
2.2.2系统开发环境和工具
开发工具:
BorlandDelphi7
系统环境:
windows764位旗舰版
2、设计原理
1)实现图像的导入:
导入一个图像时我们应该使用Delphi双重缓冲功能,解决图像导入;为了使表单上的图像可以被处理,必须导入图像转换为位图。
2)实现图像的放大和缩小:
首先,我们应该创建两个图像对象TestBMP和ProcessedBmp形象。
TestBMP为了输入图像和ProcessedBmp处理图像。
然后我们设置高度和宽度ProcessedBmp对于TestBMP的倍数。
然后调用系统函数StretchBlt()来处理图像TestBMP。
3)实现图像曝光:
首先我们遍历每个扫描线在Y轴方向,然后遍历每个像素的RGB值扫描行,我们应该判断是否这三个组件RGB值小于128,则颠倒这个组件的值。
换句话说,我们将这个组件的值是255减去旧值。
3、系统运行界面和功能
初始界面
图像缩小
图像放大
图像曝光
图像浮雕
关于我们
4、源程序代码
a.图像放大
procedureTImageProcessForm.ImageAmplicationClick(Sender:
TObject);//图像放大
begin
TestBMP.Assign(WillbeChangedBmp);
ProcessedBmp.Width:
=TestBMP.Width*2;
ProcessedBmp.Height:
=TestBMP.Width*2;
StretchBlt(
ProcessedBmp.Canvas.Handle,0,0,ProcessedBmp.Width,ProcessedBmp.Height,
TestBMP.Canvas.Handle,0,0,TestBMP.Width,TestBMP.Height,SRCCOPY
);
ChangedBmp.Assign(ProcessedBmp);
ShowChangedBmp;
end;
b.图像缩小
procedureTImageProcessForm.imageDecressClick(Sender:
TObject);
begin
TestBMP.Assign(ChangedBmp);
ProcessedBmp.Width:
=TestBMP.Widthdiv2;
ProcessedBmp.Height:
=TestBMP.Widthdiv2;
StretchBlt(
ProcessedBmp.Canvas.Handle,0,0,ProcessedBmp.Width,ProcessedBmp.Height,
TestBMP.Canvas.Handle,0,0,TestBMP.Width,TestBMP.Height,SRCCOPY
);
ChangedBmp.Assign(ProcessedBmp);
ShowChangedBmp;
end;
c.图像浮雕
procedureTImageProcessForm.imageReliefClick(Sender:
TObject);
var
x,y,i,j,red,green,blue:
Integer;
color1,color2:
TColor;
begin
TestBMP.Assign(WillbeChangedBmp);
x:
=TestBMP.Width;
y:
=TestBMP.Height;
{x:
=Imagerelief.width;
y:
=Imagerelief.Height;}
fori:
=1tox-2do
Forj:
=1toy-2do
begin
color1:
=TestBMP.Canvas.Pixels[i,j];
color2:
=TestBMP.Canvas.Pixels[i+1,j+1];
red:
=abs(GetRValue(Color1)-GetRValue(Color2)+128);
Green:
=abs(GetGValue(color1)-getGvalue(Color2)+128);
blue:
=abs(GetBValue(color1)-getBvalue(Color2)+128);
ifRed>255then
Red:
=255
elseifRed<0then
Red:
=0;
ifGreen>255then
Green:
=255
elseifGreen<0then
Green:
=0;
ifblue>255then
blue:
=255
elseifblue<0then
blue:
=0;
TestBMP.Canvas.Pixels[i,j]:
=rgb(red,green,blue);
end;
ChangedBmp.Assign(TestBMP);
ShowChangedBmp;
end;
d.图像曝光
procedureTImageProcessForm.BaoGuangClick(Sender:
TObject);
var
p:
PByteArray;
x,y:
Integer;
begin
TestBMP.Assign(WillbeChangedBmp);
fory:
=0toTestBMP.Height-1do
begin
p:
=TestBMP.scanline[y];
forx:
=0toTestBMP.Width-1do
begin
ifp[x*3]<128then
p[x*3]:
=notp[x*3];{TODO:
各分量取反}
ifp[x*3+1]<128then
p[x*3+1]:
=notp[x*3+1];
ifp[x*3+2]<128then
p[x*3+2]:
=notp[x*3+2];
end;
end;
ChangedBmp.Assign(TestBMP);
ShowChangedBmp;
end;
e.灰度图像扩张
procedureTImageProcessForm.GrayDilateClick(Sender:
TObject);
var
p1,p2,p3,p4,p5,p6:
pbytearray;
RvalueArray:
array[0..24]ofInteger;
i,j:
integer;
begin
Self.DoubleBuffered:
=True;
ProcessedBmp.assign(WillbeChangedBmp);
TestBMP.Assign(WillbeChangedBmp);
forj:
=2toProcessedBmp.Height-3do
begin//处理相邻五条扫描线
p1:
=TestBMP.ScanLine[j];
p2:
=ProcessedBmp.ScanLine[j-1];
p3:
=ProcessedBmp.ScanLine[j];
p4:
=ProcessedBmp.ScanLine[j+1];
p5:
=ProcessedBmp.ScanLine[j+2];
p6:
=ProcessedBmp.ScanLine[j-2];
fori:
=2toProcessedBmp.Width-3do
begin
RvalueArray[0]:
=p2[3*(i-2)+2];
RvalueArray[1]:
=p2[3*(i-1)+2];
RvalueArray[2]:
=p2[3*i+2];
RvalueArray[3]:
=p2[3*(i+1)+2];
RvalueArray[4]:
=p2[3*(i+2)+2];
RvalueArray[5]:
=p3[3*(i-2)+2];
RvalueArray[6]:
=p3[3*(i-1)+2];
RvalueArray[7]:
=p3[3*i+2];
RvalueArray[8]:
=p3[3*(i+1)+2];
RvalueArray[9]:
=p3[3*(i+2)+2];
RvalueArray[10]:
=p4[3*(i-2)+2];
RvalueArray[11]:
=p4[3*(i-1)+2];
RvalueArray[12]:
=p4[3*i+2];
RvalueArray[13]:
=p4[3*(i+1)+2];
RvalueArray[14]:
=p4[3*(i+2)+2];
RvalueArray[15]:
=p5[3*(i-2)+2];
RvalueArray[16]:
=p5[3*(i-1)+2];
RvalueArray[17]:
=p5[3*i+2];
RvalueArray[18]:
=p5[3*(i+1)+2];
RvalueArray[19]:
=p5[3*(i+2)+2];
RvalueArray[20]:
=p6[3*(i-2)+2];
RvalueArray[21]:
=p6[3*(i-1)+2];
RvalueArray[22]:
=p6[3*i+2];
RvalueArray[23]:
=p6[3*(i+1)+2];
RvalueArray[24]:
=p6[3*(i+2)+2];
SelectionSort(RvalueArray);
p1[3*i+2]:
=RvalueArray[24];
p1[3*i+1]:
=RvalueArray[24];
p1[3*i]:
=RvalueArray[24];
end;
end;
ChangedBmp.Assign(TestBMP);
ShowChangedBmp;
end;
心得体会
经过了一阶段计算机图形学的学习,对于图形学中基本图形的生成算法有了一定的了解。
深度研究图形学,需要高深的数学知识,且每一个细化的方向需要的知识也不一样。
图形学是计算机科学与技术学科的活跃前沿学科,被广泛的应用到生物学、物理学、化学、天文学、地球物理学、材料科学等领域。
我深深感到这门学科涉及的领域之广是惊人的,可以说博大精深。
在这个计算机的时代什么都要用到计算机技术,图形也是我们生活中重要的部分,所以我们得好好学好图形学。
参考文献
[1].计算机图形学的算法基础(英文版·第二版)(美)DavidF.Rogers
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 127 王锟 计算机图形学解析 计算机 图形学 解析