二维图像矢量化方法简述
本文为自己学习过程中的记录。主要为整理了大佬们以往的成果,然后加一些自己的思考总结。参考文献放到了最后,向大佬致敬。
二维图像分类:
计算机数字图像一般分为位图和矢量图两种:(1)像素图(2)矢量图
(1)像素图,也称位图。位图是基于像素点的图,通常也被称为点阵图、光栅图或像素图等,其存储格式多样,常用的有BMP标准图像文件格式、压缩的GIF、JPEG等文件格式。人们通过改变像素点上的颜色特征信息及像素点空间位置来实现对位图显示及内容的修改编揖。虽然位图能通过丰富多彩的色彩像素逼真地表现出自然图像,但在对基于像素表示的位图编辑时,很容易出现内容失真、存储过大、编辑复杂等问题。
(2)矢量图也被称为向量图是由一系列点、直线、折线、曲线等几何图元信息和颜色信息表示,通常被压缩为XML文件,这些图元信息通过公式计算获得,再根据计算栅格化显示,并不是由一个个像素存储显宗出来。矢量图只需要修改相应几何图元的参数信息即可实现缩放、旋转、拉申等编辑,同时矢量图易于缩放,不会造成图像的失真。如下图为一副图像的矢量图和位图文件表示,将图像局部放大同样的倍数,对比矢量图不会出现如位图一样的模糊和马赛克等现象。由于存储简单的几何图元和颜色信息,矢量图文件容量一般也较小,但不易制作色彩层次丰富的自然真实图像。
矢量图相比像素图具有以下特点:
(1)存储紧凑性
在文件表示上,矢量图对比位图具有更少的冗余信息,只需要保存基本几何图元和颜色信息即可,而位图需要记录每个图像中的像素坐标和颜色。同时矢量图的表示与对象湿示大小无关,对于那竖对象信息轮廓越清晰、区域色彩变化越均匀缓慢、物体显示越大时矢量图优势越突出,可减少存储空间和网络宽带。
(2)可缩放性
由于矢量图几何参数表示的优势,对其缩放操作可以保持物体边缘信息,不会出现模糊等现象。在随意缩放中,矢量图不会引起湿示质量的损失,而位图放大时由于内插算法会出现模糊和边缘银齿情况。
(3)易编辑性
对矢量图进行编辑,只需要调整基本图元矢量参数,即轻而易举可实现旋转、平移、拉伸等效果,同时不会降低图像绘制精度。而位图想要达到同样效果则需要对许多像素颜色及位置进行修改。网络常见的SVG和flash文件就是因为矢量图能便捷地进行变形和风格化从而得W广泛传播。
矢量文件:
矢量化方法:
现在的矢量化方法大致分为两类:(1)扩散曲线法,(2)网格化。
基本思想都是将像素文件进行分割,变成具有边界信息和内部填充信息的两类信息然后再做保存。
其一般存储为:边界曲线,内部填充信息
以扩散曲线为例:(扩散曲线是08年提出的,基于图像轮廓可以表达图像的基本信息的认知, 把曲线和曲线上的颜色作为图像的基本信息,通过这些信息可以重新生成彩色填充的图像。)
其基本流程为:
(1)图像分割
(2)边缘检测
(3)曲线拟合
(4)将曲线和填充信息按照矢量文件的要去保存
(5)求解泊松方程将扩散曲线上的颜色迭代的扩散到整幅图像。
一些经典算法如下:
该截图截自李瑞龙的论文《基于Canny优化的卡通视频分割与矢量化》
参考资料:
(1)基于Canny优化的卡通视频分割与矢量化
(2)带有扩散系数的扩散曲线生成方法
(3)基于特征边界提取的图像矢量化
二维图像矢量化方法简述相关推荐
- 时间序列转二维图像方法及其应用研究综述
目录 1 前言 2 方法综述 2.1 时频分析法 2.1.1 短时傅里叶变换 2.1.2 小波变换 2.1.3 希尔伯特-黄变换 2.2 图像编码方法 2.2.1 格兰姆角场 2.2.2 马尔可夫转移 ...
- 【Python】函数图像绘制:二维图像、三维图像、散点图、心形图
[Python]函数图像绘制:二维图像.三维图像.散点图.心形图 所有需要用的包 二维图像 三维图像 散点图绘制 心形图绘制 所有需要用的包 from mpl_toolkits.mplot3d imp ...
- python怎么画简单图片-Python绘制简易的二维图像
大家好,我是飞向天空的牛. 最近学习了一下用Python绘制简易的二维图像,代码如下图所示:绘图代码 文本如下: import matplotlib.pyplot as plt import nump ...
- 【MATLAB】二维绘图 ( 绘制二维图像 | 设置图像样式 )
文章目录 一.绘制二维图像 1.二维绘图步骤 2.二维绘图步修饰 3.代码示例 二.设置图像参数 1.图像参数 2.代码示例 一.绘制二维图像 1.二维绘图步骤 绘图前需要给定 xxx 轴 , yyy ...
- python二维图颜色函数_Python scipy的二维图像卷积运算与图像模糊处理操作示例
本文实例讲述了Python scipy的二维图像卷积运算与图像模糊处理操作.分享给大家供大家参考,具体如下: 二维图像卷积运算 一 代码 import numpy as np from scipy i ...
- 拉普拉斯算子属于卷积方法吗_二维图像中的Laplace算子和图论中的Laplacian矩阵...
最近在阅读 如何理解 Graph Convolutional Network(GCN)?www.zhihu.com 接触到了图论中的Laplacian矩阵,定义为 , 是Laplacian矩阵, 是 ...
- 程序员用「美貌」突破二维图像的人脸识别
GitChat 作者:于航 原文: 如何利用"女装术"突破基于二维图像的人脸识别 关注微信公众号:「GitChat 技术杂谈」 一本正经的讲技术 [不要错过文末彩蛋] 首先声明,这 ...
- python画车辆轨迹图_如何利用 Python 绘制酷炫的 车辆轨迹 — 速度时空图?三维数据用二维图像呈现...
说明:本文系交通攻城狮原创文章,如需转载请私信联系,侵权必究. 2020,第 30 期,编程笔记 建议直接阅读精编版:如何利用 Python 绘制酷炫的 车辆轨迹 - 速度时空图?三维数据用二维图像呈 ...
- python绘制曲线y=2x+5_Python绘制简易的二维图像
大家好,我是飞向天空的牛. 最近学习了一下用Python绘制简易的二维图像,代码如下图所示:绘图代码 文本如下: import matplotlib.pyplot as plt import nump ...
- 二维图像中的Hessian矩阵(及MATLAB代码)
文章目录 一.图像中Hessian矩阵的定义及公式推导 二.MATLAB代码 一.图像中Hessian矩阵的定义及公式推导 对于二维图像 f ( x , y ) f(x,y) f(x,y),在点 x ...
最新文章
- 互联网金融,如何起死回生? | 周四话金融
- atmega8a如何烧写程序_如何让树莓派4上固件的debug日志输出到串口?
- esp32原理图设计_第十一章 ESP32的PWM全彩LED灯显示
- 为什么我们会拖延? (TED)
- Windbg 离线调试.Net 程序入门
- dos 初始化 mysql数据库_DOS下的MySQL数据库基本操作
- There is no Action mapped for namespace / and action name accredit.
- 课时4—切入切出动画
- Unstated浅析
- ss客户端以及tcp,udp,dns代理ss-tproxy本地安装版--centos7.3 x64以上(7.3-7.6x64测试通过)...
- 1292:宠物小精灵之收服
- 这100 个网络基础知识,看完成半个网络高手
- 网络安全之内网信息收集
- Android 动画
- PaddleOCR数字仪表识别——1.字体背景删选
- 电子邮件SMTP协议原始命令码和工作原理
- java:获取当月最后一天
- Commons-Collections简介
- [附源码]计算机毕业设计JAVA动物保护网站
- 基于微信小程序的健身私教预约系统
热门文章
- Chrome、FireFox浏览器新标签页打开搜索和书签
- 关于spring boot的web.xml
- 年薪201W!华为新天才少年出炉:武大94年博士生入选!任正非最新发声:江山代有才人出,不拘一格降人才!...
- 机器学习经典案例——泰坦尼克号
- C# Winfrom Chart 图表控件 柱状图、折线图
- 2021-05-13 Redis面试题 MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据?
- PHP LOL接口,教你如何用php实现LOL数据远程获取_PHP教程
- 数学建模时序数据分析——趋势性检验和平稳性检验
- 4.4 输入法图片 android,支持安卓4.4!搜狗输入法5.1新版发布
- 凤凰系统运行linux,凤凰系统率先升级内核到Linux4.9,支持更多新硬件