基于Python设计的光栅图形学作业

光栅图形学作业 一,基本选题 基本选题为区域填充,顺便把画线给实现了,编程语言使用的是 python3,使用的第三方库为 opencv, 使用如下命令安装依赖包: c++ sudo pip3 install -r requirements

本文包含相关资料包-----> 点击直达获取<-------

光栅图形学作业

一、基本选题

基本选题为区域填充,顺便把画线给实现了。编程语言使用的是 python3,使用的第三方库为 opencv。

使用如下命令安装依赖包:

c++ sudo pip3 install -r requirements.txt

所有代码位于 main.py 中,使用命令 python3 main.py 即可运行。

–基本功能: 使用Bresenham算法画线

–允许OpenCV完成图像读写,禁止cv::line

–扩展效果:

•使用Kernel filter进行抗锯齿。

•使用SSAA进行抗锯齿。(允许cv::resize)

1.1 画线

实现画线的函数为 line(p1,p2)和 drawline(a,p1,p2,col),作用如下:

line(p1,p2):输入两个点坐标,默认 |p1x p2x| ≥ |p1y p2y|,返回一个从 p1 到 p2 需要着色的点的 listdrawline(a,p1,p2,col):输入图像矩阵 a、线段起点终点和需要着色的颜色,在 a 中画出该线段实现效果如图 1 所示。

图 1: 一个五角星

可以看到放大之后的毛刺效果,如图 2 所示。

图 2: 放大之后的线段

1.2 区域填充

实现函数为 colorize(a,p,bg,fg),具体为在矩阵 a 中,以点 p 为起始点,填充颜色 fg,默认去覆盖颜色 bg。使用队列实现,效果如图 3 所示。

图 3: 一个白白的五角星

可以看到毛刺效果并没有消失,如图 4 所示。

图 4: 放大之后的边缘

二、加分项

此处实现了反走样功能

2.1 反走样

反走样使用卷积操作使图像平滑,其中卷积核为

F= 161 2 4 21 2 1

我自己手写了一下卷积实现(代码中 91-95 行,已注释),经过测试,运行效率远不如 opencv 中的 filter2D 函数来得快。实现反走样之后的效果如图 5 所示。

图 5: 一个没有毛刺的五角星

可以看到边缘已经平滑,如图 6 所示。

图 6: 放大之后的边缘出于美观角度,最后在背景中又人为地加入了一些噪点,能够拥有更好的视觉效果。最终成品如图 7 所示。

图 7: 一个有背景的五角星

参考文献

  • 网络教学中基于.NET的作业管理系统设计与实现(电子科技大学·朱彦敏)
  • 建筑设计院图档管理系统的设计与实现(吉林大学·时淮龙)
  • 基于B/S架构报表生成与图形化的研究与实现(合肥工业大学·高涵)
  • 基于视频分享社交系统后台的设计与研发(中国地质大学(北京)·刘昌瑞)
  • 电商场景下的复杂横幅广告参数化设计系统研究(浙江大学·王奇峰)
  • GIS在空间信息门户中的研究与应用(中国地质大学(北京)·周柏贾)
  • 《图像处理》专题学习网站设计与开发(华中师范大学·徐军)
  • 基于SSH架构的个人空间交友网站的设计与实现(北京邮电大学·隋昕航)
  • Linux环境下基于Web的图档管理系统的开发(山东科技大学·刘治国)
  • LED光学设计信息集成共享服务平台研究与实现(五邑大学·梁国潮)
  • 基于J2EE架构实时监控系统的应用研究(武汉理工大学·王献刚)
  • 电商场景下的复杂横幅广告参数化设计系统研究(浙江大学·王奇峰)
  • 基于C#.NET和MATLAB的茶叶甄别系统研究与开发(河北大学·邢国凯)
  • 分布式应用系统的研究与开发(武汉理工大学·廖斌)
  • 印刷公司内容管理平台的设计与实现(吉林大学·郎彩虹)

本文内容包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主题。发布者:源码导航 ,原文地址:https://m.bishedaima.com/yuanma/36038.html

相关推荐

发表回复

登录后才能评论