基于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

相关推荐

  • 基于Python实现损失函数的参数估计

    1, 实验目的 理解逻辑回归模型,掌握逻辑回归模型的参数估计算法, 2, 实验要求 实现两种损失函数的参数估计(1,无惩罚项;2,加入对参数的惩罚),可以采用梯度下降
    2024年05月14日
    1 1 1
  • 基于jsp和mysql实现的个人博客系统

    基于jsp和mysql实现的个人博客系统 1,项目简介 1,1 项目概述 这是一个简单的个人博客系统,个人练手,完成会部署到云服务器作为记录自己生活学习的点点滴滴的一个工具
    2024年05月14日
    17 1 3
  • 在线文档管理系统

    这是一个🔥🔥基于SpringBoot框架的在线文档管理系统设计与实现🔥🔥的项目源码,开发语言Java,框架使用的SpringBoot+vue技术,开发环境Idea/Eclipse
    2024年05月23日
    1 1 1
  • 基于JSP和MySQL的宠物网站设计与实现

    基于JSP和MySQL的宠物网站设计与实现 摘 要 本系统是采用Java技术来构建的一个基于Web技术的B/S结构的宠物网站,该网站建立在Spring和Struts2框架之上
    2024年05月14日
    11 1 2
  • Java+SSH酒店预订管理网站

    这是一个🔥🔥SSH酒店预订管理网站🔥🔥的项目源码,开发语言Java,开发环境Idea/Eclipse,这个 酒店预订开发技术栈为SSH项目,可以作为毕业设计课程设计作业基于Java+SSH技术(Struts2
    2024年05月23日
    3 1 1
  • 基于Java+SSM的房屋租赁管理系统、javaweb+mysql框架

    房屋租赁管理系统在当今社会扮演着重要角色,随着城市化进程的不断加快,人们对于房屋租赁的需求也日益增长,基于Java+SSM的房屋租赁管理系统具有极大的应用潜力,本论文旨在探讨如何利用Javaweb技术开发一个全面而高效的房屋租赁管理系统
    2024年05月07日
    3 1 1
  • 基于Python实现的新闻网络爬虫程序

    基于Python实现的新闻网络爬虫程序 1,简介 1,1 引用术语与缩写解释 缩写,术语 解 释 Python 一种简洁而强大的解释型脚本语言 pyodbc Python下的ODBC数据库访问组件 SQLAlchemy Python下的ORM数据访问组件 pywin32 Python下的Win32接口访问组件 requests Python下的Web访问组件 Pillow Python下的图像处理组件 解释型语言 无需编译源码可敏捷部署并执行的语言 IOC 控制反转
    2024年05月14日
    3 1 2
  • 基于ASR的语音词频提取云平台(python)

    基于ASR的语音词频提取云平台(python) 摘要 随着互联网的发展,语音文件成为了人们接触得越来越多文件,如何高效的从一段录音中提取出关键信息
    2024年05月14日
    2 1 2
  • 基于Java+SSH的在线教学交流平台、基于JavaWeb的在线教学交流平台

    在当今信息化时代,教育行业迎来了数字化转型的浪潮,基于Java+SSH框架(struts2+spring+hibernate)的在线教学交流平台应运而生,本研究旨在设计和开发一个全面的师生学习交流平台
    2024年05月07日
    6 1 3
  • 基于Java Web和MySQL的学生信息管理系统

    基于Java Web和MySQL的学生信息管理系统 1,系统概述 1,1 课设目的 复习,巩固JavaWeb,数据库,AJAX,JQuery,HTML的基础知识
    2024年05月14日
    2 1 1

发表回复

登录后才能评论