用布雷森汉姆(Bresenham)算法直接在YUV图上绘制图形
Bresenham的线算法以Jack Elton Bresenham命名,他于1962年在IBM开发。是计算机图形学中的经典算法,恰好最近公司项目中需要实现类似的功能,于是就实践了一把,为了以后爬坑方便,记录在此。
图形转YUV
我们是在YUV裸数据上去绘,而通常的图像都是代容器格式的JPG或者PNG等等,所以需要首先将图片转换为YUV裸数据,我们用FFMPEG这款视频处理领域的瑞士军刀完成此功能。
常用的YUV格式有NV12和NV21两种,,NV12 分两个平面,Y 平面和 UV 平面存储,UV 在同一个平面交叉存储,所以也被称为interleaved,NV12格式也叫IOS模式,同FFMPEG 中的YUV420SP,Y和UV分成两个部分分别存储,NV21格式是Android上的常用格式,格式类似于NV12,只是U和V的顺序相反。
转换命令:
ffmpeg -i car.jpeg -pix_fmt nv12 car.nv12.yuv
原图:
用布雷森汉姆(Bresenham)算法直接在YUV图上绘制图形相关推荐
- 【附源码】布雷森汉姆直线算法(bresenham‘s line algorithm)
1.布雷森汉姆直线算法简介 我们在纸上画直线时,只需要定一个起点和终点,然后把两点连接起来就是一条直线,你将会得到一条笔直的直线. 但是,这个简单的过程,在计算机上却并不容易.首先计算机的屏幕是一个一 ...
- Python布雷森汉姆直线算法RViz可视化ROS激光占位网格映射
使用对数赔率映射已知姿势算法(ROS 包). 布雷森汉姆直线算法 布雷森汉姆直线算法是一种线绘制算法,它确定应选择的 n 维栅格的点,以便形成两点之间的直线的近似值. 它通常用于在位图图像中(例如在计 ...
- Bresenham‘s line algorithm 布雷森汉姆直线算法
1.线性方程 首先我们假设要绘画的直线斜率大于0小于1. 截距式直线方程如下: y=f(x)=mx+by=f(x)=mx+by=f(x)=mx+b 现在我们要从点(x0,y0)(x_0,y_0)(x0 ...
- 易懂的Bresenham 布雷森汉姆算法画圆的原理与Python编程实现教程
Bresenham 布雷森汉姆算法画圆的原理与编程实现教程 注意:Bresenham的圆算法只是中点画圆算法的优化版本.区别在于Bresenham的算法只使用整数算术,而中点画圆法仍需要浮点数.注意: ...
- 布雷森汉姆直线演算法(Bresenham‘s line algorithm)介绍
布雷森汉姆直线演算法(Bresenham's line algorithm)是用来描述两点间决定一条直线的算法,本人发现它可以用于确定栅格地图中两点间直线经过的栅格位置,它会算出一条线段在点阵图上最接 ...
- 在yuv上画线_利用布雷森汉姆算法绘制在YUV图像上画直线
最近,因工作需要,在YUV图像上画直线: 算法1步骤: 1.已知直线的起点和终点: 2. 利用布雷森汉姆算法在两点间画直线: 3. 将该直线上的点的颜色在YUV图像上画出. 布雷森汉姆算法原理参考wi ...
- 用C语言代码实现布雷森汉姆直线插补
布雷森汉姆直线插补是计算机图形学中常见的直线插补算法.以下是用C语言实现布雷森汉姆直线插补的代码示例: #include <stdio.h> #include <math.h> ...
- ITK:布雷森汉姆线BresenhamLine
ITK:布雷森汉姆线BresenhamLine 内容提要 输出结果 C++实现代码 内容提要 在两点之间的布雷森纳姆线上获得点. 输出结果 [0, 0] [1, 1] [2, 2] [3, 3] [0 ...
- 森汉姆算法(AS3)-检测两点之间所经过的节点
为了把A*寻到的路径中一些没必要的节点去掉,可以用到森汉姆算法,如果两点之间经过的节点都是可走的,那就把这两个点连起来,最终拿到的路径就是比较平滑的了. 下面是算法实现: ? public stati ...
最新文章
- 20135231 —— 第六周任务总结报告
- C++primer第九章 顺序容器 9.3 顺序容器操作
- IOS scrollView 知识点
- emlog程序音乐歌曲网源码
- Cadence Virtuoso IC617的启动和新建工程
- 【142】阿蛮歌霸使用技巧
- 把PDF/AZW/EPUB转成图片
- java前后端分离跨域解决方案
- Japanese Student Championship 2019 Qualification B - Kleene Inversion(规律 + 快速乘)
- eslint 规则之 《Missing radix parameter》
- ps 索引模式 导出变成了白色背景
- 胡适致毕业生:功不唐捐
- java代码控制电脑发出警报_java – 如何使用警报构建器对话框显示消息
- 【3.3 ads篇(重点)】
- 正圆锥体空间方程_电路原理中三相缺相保护器是如何工作的,正负序与它有什么关系...
- ThinkPHP模版引擎之变量输出详解
- 一篇文章弄懂变压器的等效原理
- 悟空(wukong)搜索引擎源代码阅读(待续)
- 你离互联网大公司的距离只有三个月:算法小白的面试成长之旅之路线图
- 【Windows】应用程序池“*******”将被自动禁用,原因是为此应用程序池提供服务的进程中出现一系列错误