ImageVerifierCode 换一换
格式:DOCX , 页数:8 ,大小:23.90KB ,
资源ID:9253630      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9253630.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(计算机图形学复习参考题.docx)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

计算机图形学复习参考题.docx

1、 复习参考题 3、请使用 OpenGL 和 GLUT 编写一个简单的图形程序,用于显示一个填充的白色矩形。其 中矩形规定为(-0.8, -0.8)~(0.8, 0.8),程序窗口的大小为(200, 200),标题为“白色矩形”。 #include void Paint() { glClear(GL_COLOR_BUFFER_BIT); glRectf(-0.8, -0.8, 0.8, 0.8); glFlush(); } int main() { glutInitWindowSize(200, 200); glutCreateW

2、indow("白色矩形"); glutDisplayFunc(Paint); glutMainLoop(); } 4、 请使用 OpenGL 和 GLUT 编写一个简单的图形程序,用于显示一个填充的红色三角形。 其中三角形的顶点分别是(-0.8, -0.8)、(0.8, -0.8)和(0, 0.8),程序窗口大小为(200, 200),标题 为“红色三角形”。 #include void Paint() { glClear(GL_COLOR_BUFFER_BIT); glColor3f(1, 0, 0); glBegin(GL_T

3、RIANGLES); glVertex2d(-0.8, -0.8), glVertex2d(0.8, -0.8), glVertex2d(0, 0.8); glEnd(); glFlush(); } int main() { glutInitWindowSize(200, 200); glutCreateWindow("红色三角形!"); glutDisplayFunc(Paint); glutMainLoop(); } 5、 请使用 OpenGL 和 GLUT 编写一个简单的图形程序,用于演示点的反走样效果。要求使 用线段(-0.6, -0.6)~(0.6

4、 0.6)上均匀分布的 5 个点(含端点),点的大小为 10.5 像素,程序 窗口的大小为(200, 200),标题为“点的反走样”。 #include void Paint() { double x; glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_POINTS); for(x = - 0.6; x <= 0.6; x += 0.3) glVertex2f(x, x); glEnd(); glFlush(); } int main() { glutInitWindowSize(200

5、 200); glutCreateWindow("点的反走样"); glutDisplayFunc(Paint); glPointSize(10.5); glEnable(GL_POINT_SMOOTH); glutMainLoop(); } 6、 请使用 OpenGL 和 GLUT 编写一个简单的图形程序,用于演示线段的反走样效果。其中 线段的端点为(-0.6, -0.3)和(0.6, 0.3),线宽为 4.5 像素,程序窗口的大小为(200, 200),标题为“线段的反走样”。 #include void Paint() {

6、 glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_LINES); glVertex2f(-0.6, -0.3), glVertex2f(0.6, 0.3); glEnd(); glFlush(); } int main() { glutInitWindowSize(200, 200); glutCreateWindow("线段的反走样"); glutDisplayFunc(Paint); glLineWidth(4.5); glEnable(GL_LINE_SMOOTH); glutMainLoop(

7、); } }} 25、请使用 OpenGL、GLU 和 GLUT 编写一个三维犹他茶壶程序。其中茶壶的半径为 1 单 位,并远移 6.5 单位;观察体规定为:视场角=30 度,宽高比=1,近=1,远=100;程序窗口的大小为(200, 200),标题为“尤他茶壶”。 #include void Paint() { glClear(GL_COLOR_BUFFER_BIT); glLoadIdentity(); gluPerspective(30, 1, 1, 100); glTranslatef(0, 0, - 6.5); glu

8、tSolidTeapot(1); glFlush(); } int main() { glutInitWindowSize(200, 200); glutCreateWindow("尤他茶壶"); glutDisplayFunc(Paint); glutMainLoop(); } 26、 请使用 OpenGL 和 GLUT 编写一个显示线框球体的简单图形程序。其中球体的半径为 0.8,经线数为 24,纬线数为 12,并绕x 轴旋转 30 度,程序窗口的大小为(200, 200),标题 为“线框球”。 #include void

9、Paint() { glClear(GL_COLOR_BUFFER_BIT); glLoadIdentity(); glRotated(30, 1, 0, 0); glutWireSphere(0.8, 24, 12); glFlush(); } int main() { glutInitWindowSize(200, 200); glutCreateWindow("线框球"); glutDisplayFunc(Paint); glutMainLoop(); } 27、 请使用 OpenGL 和 GLUT 编写一个显示线框椭球体的

10、简单图形程序。其中椭球体的两 极方向为上下方向,左右方向的半径为 0.98,上下方向的半径为 0.49,前后方向的半径为0.6,经线数为 48,纬线数为 24,使用正投影,裁剪窗口为(-1, -0.5)~(1, 0.5),程序窗口的大 小为(400, 200),标题为“线框椭球”。 #include void Paint() { glClear(GL_COLOR_BUFFER_BIT); glLoadIdentity(); gluOrtho2D(-1, 1, -0.5, 0.5); glScaled(0.98, 0.49, 0.6); g

11、lRotated(-90, 1, 0, 0); // 调整两极方向 glutWireSphere(1, 48, 24); glFlush(); } int main() { glutInitWindowSize(400, 200); glutCreateWindow("线框椭球"); glutDisplayFunc(Paint); glutMainLoop(); } 28、 请使用 OpenGL、GLU 和 GLUT 编写一个三维犹他茶壶程序。其中茶壶的半径为 1 单 位,并远移 6.5 单位;观察体规定为:视场角=30 度,宽高比=1,近=1,

12、远=100;程序窗口 的大小为(200, 200),标题为“旋转的尤他茶壶”。茶壶绕 z 轴不断旋转,旋转的时间间隔为 25 毫秒,角度间隔为 2 度。注意旋转角度必须限定在 0~360 度以内。 #include int angle = 0; void Paint() { glClear(GL_COLOR_BUFFER_BIT); glLoadIdentity(); gluPerspective(30, 1, 1, 100); glTranslatef(0, 0, -6.5); glRotated(angle, 0, 0, 1);

13、glutSolidTeapot(1); glFlush(); } void timer(int millis) { angle = (angle + 2) % 360; glutPostRedisplay(); glutTimerFunc(millis, timer, millis); } int main() { glutInitWindowSize(200, 200); glutCreateWindow("旋转的尤他茶壶"); glutTimerFunc(25, timer, 25); glutDisplayFunc(Paint); g

14、lutMainLoop(); } 29、 请使用 OpenGL、GLU 和 GLUT 编写一个简单的多视口演示程序。要求:在屏幕窗口 左下角的 1/4 部分显示一个红色的填充正三角形;在屏幕窗口右上角的 1/4 部分显示一个绿 色的填充正方形;三角形和正方形的左下角顶点坐标值均为(0, 0),右下角顶点坐标值均为(1, 0);裁剪窗口均为(-0.1, -0.1)~(1.1, 1.1);程序窗口的大小为(200, 200),标题为“多视口演示”。 #include void Viewport(int x, int y, int w, int h) { g

15、lViewport(x, y, w, h); glLoadIdentity(); gluOrtho2D(-0.1, 1.1, -0.1, 1.1); } void Triangle() { glBegin(GL_TRIANGLES); glVertex2d(0, 0); glVertex2d(1, 0); glVertex2d(0.5, 0.8660); glEnd(); } void Paint() { int w = glutGet(GLUT_WINDOW_WIDTH) / 2; int h = glutGet(GLUT_WINDOW_H

16、EIGHT) / 2; glClear(GL_COLOR_BUFFER_BIT); Viewport(0, 0, w, h); glColor3f(1, 0, 0); Triangle(); Viewport(w, h, w, h); glColor3f(0, 1, 0); glRectd(0, 0, 1, 1); glFlush(); } int main() { glutInitWindowSize(200, 200); glutCreateWindow("多视口演示"); glutDisplayFunc(Paint); glutMainL

17、oop(); } 30、请使用 OpenCV 编写一个简单的程序,用于从当前目录读入并显示一幅图像(例如当 前目录中的 lena.jpg)。 #include // CV #include // GUI int main() { IplImage *im = cvLoadImage("lena.jpg", CV_LOAD_IMAGE_COLOR); // 声明IplImage指针,载入彩色图像 if(im == 0) return -1; // 载入失败 cvNamedWindow("First Ope

18、nCV", CV_WINDOW_AUTOSIZE); //创建窗口 cvShowImage("First OpenCV", im); // 显示图像 while(cvWaitKey(0) != 27) {} // 等待按Esc键 cvDestroyWindow("First OpenCV"); // 销毁窗口 cvReleaseImage(&im); // 释放图像 } 31、 请使用 OpenCV 编写一个简单的程序,该程序首先读入一幅彩色图像(例如当前目录 中的 lena.jpg),然后将这幅彩色图像的 3 个通道分离出来,得到 3 幅灰度图像,最后显示

19、 这 3 幅灰度图像并释放相关资源。 #include #include #include #include #include int main() {   IplImage* img; int y,x; img = cvLoadImage("lena.jpg ");//加载图像lena.jpg /*   将3通道图像 分解成 3幅单通道的图像 */ IplImage* b_img ,*g_img,*r_img; //声明三个

20、图像变量 /**** 给三个单通图像 分配内存空间 *****/ b_img = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U , 1 ); g_img = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U , 1 ); r_img = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U , 1 ); for(y=0;yheight;y++) {//将图像指针偏移到第y行 unsigned char* prow = (unsigned char*)(  img->i

21、mageData + y*  img->widthStep); unsigned char* brow = (unsigned char*)(b_img->imageData + y*b_img->widthStep); unsigned char* grow = (unsigned char*)(g_img->imageData + y*g_img->widthStep); unsigned char* rrow = (unsigned char*)(r_img->imageData + y*r_img->widthStep);             for(x=0;x

22、width;x++) {//将B通道  G通道  R通道的值 分别拷贝到3个单通道的图像中去 brow[x] = prow[3*x + 0] ; //拷贝B通道的值prow[3*x + 0] 到 单通道图像b_img grow[x] = prow[3*x + 1] ; //拷贝G通道的值prow[3*x + 0] 到 单通道图像g_img rrow[x] = prow[3*x + 2] ; //拷贝R通道的值prow[3*x + 0] 到 单通道图像r_img } } /***** 创建3个窗口 *****/ cvNamedWindow("b"); cvNamedWind

23、ow("g"); cvNamedWindow("r"); /***** 显示b  g r三个通道的图像 *****/ cvShowImage("b" , b_img); cvShowImage("g" , g_img); cvShowImage("r" , r_img); /***** 显示大图像 ******/ cvNamedWindow("1"); cvShowImage("1",img); cvWaitKey(0); //等待按键 cvReleaseImage(&img);     //释放内存空间 } 32、 使用 OpenC

24、V 编写一个演示傅立叶变换和逆变换的程序。该程序首先装入一幅灰度图 像并显示该图像(例如当前目录中的 lena.jpg),然后对该图像进行傅立叶正变换,对得到 的结果进行傅立叶逆变换,显示得到的结果以便与原图像进行比对。 #include #include int main() { CvMat *X = cvLoadImageM("lena.jpg", 0); CvMat *Y = cvCreateMat(X->rows, X->cols, CV_64F); cvScale(X, Y, (double)1 / 2

25、55, 0); cvDFT(Y, Y, CV_DXT_FORWARD, 0); cvDFT(Y, Y, CV_DXT_INVERSE_SCALE, 0); cvShowImage("src", X), cvShowImage("dst", Y); cvWaitKey(0); cvReleaseMat(&X), cvReleaseMat(&Y); cvDestroyAllWindows(); } 33、 使用 OpenCV 编写一个程序,该程序对一幅彩色图像(例如当前目录中的 lena.jpg)进 行一次中值模糊,要求分别显示源图像和模糊化以后的图像。其中内核大小为

26、 5×5。 #include #include int main() { CvMat *X = cvLoadImageM("lena.jpg", 1); cvShowImage("src", X); cvSmooth(X, X, CV_MEDIAN, 5, 5, 0, 0); cvShowImage("dst", X); cvWaitKey(0); cvReleaseMat(&X); cvDestroyAllWindows(); } 34、 使用 OpenCV 编写一个程序,该程序对一幅灰度图像(例

27、如当前目录中的 lena.jpg)进行Sobel 锐化,要求显示锐化以后的图像。其中内核大小为 3×3,x 和 y 方向均使用 1 阶差 分。 #include #include int main() { CvMat *X = cvLoadImageM("lena.jpg", 1); cvShowImage("src", X); CvMat *tmp = cvCreateMat(X->rows, X->cols, CV_16SC3); cvSobel(X, tmp, 1, 1, 3); cvConve

28、rt(tmp, X); cvShowImage("dst", X); cvWaitKey(0); cvReleaseMat(&X), cvReleaseMat(&tmp); cvDestroyAllWindows(); } 35、 使用 OpenCV 编写一个程序,该程序使用大小为 3 的正方形模板(锚点位于模板中心) 对源图像(例如当前目录中的二值图像 image-j.bmp)进行 2 次腐蚀操作,要求显示源图像 和腐蚀以后的图像。 #include #include int main()

29、 { CvMat *X = cvLoadImageM("lena.jpg", 1); cvShowImage("src", X); CvMat *tmp = cvCreateMat(X->rows, X->cols, CV_16SC3); cvSobel(X, tmp, 1, 1, 3); cvConvert(tmp, X); cvShowImage("dst", X); cvWaitKey(0); cvReleaseMat(&X), cvReleaseMat(&tmp); cvDestroyAllWindows(); } 36、 使用

30、 OpenCV 编写一个程序,该程序对一幅灰度图像(例如当前目录中的 lena.jpg)进 行直方图均衡化,要求分别显示源图像和均衡化以后的图像。 #include #include int main() { CvMat *X = cvLoadImageM("lena.jpg", 0); cvShowImage("Source image", X); cvEqualizeHist(X, X); cvShowImage("Equalized Image", X); cvWaitKey(0);

31、cvReleaseMat(&X); cvDestroyAllWindows(); } 37、 使用 OpenCV 编写一个程序,该程序对一幅灰度图像(例如当前目录中的 lena.jpg)进 行二值化变换,要求分别显示源图像和二值化以后的图像。其中二值化阈值为 127,高亮度 改为 255。 #include #include int main() { CvMat *X = cvLoadImageM("lena.jpg", 0); cvShowImage("Source image", X);

32、 cvThreshold(X, X, 127, 255, CV_THRESH_BINARY); cvShowImage("Binary Image", X); cvWaitKey(0); cvReleaseMat(&X); cvDestroyAllWindows(); } 38、使用 OpenCV 编写一个程序,该程序对一幅灰度图像(例如当前目录中的 lena.jpg)进 行 Canny 边缘检测,要求分别显示源图像和检测到的边缘。其中小阈值为 50,大阈值为 150, 内核大小为 3。 #include #include int main() { CvMat *X = cvLoadImageM("lena.jpg", 0); cvShowImage("Source image", X); cvCanny(X, X, 50, 150, 3); cvShowImage("Canny Image", X); cvWaitKey(0); cvReleaseMat(&X); cvDestroyAllWindows(); }

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服