YUV420 数据分析

提示: 读下面的文字时,希望大家结合图片看,这样更易理解
       在YUV420中,一个像素点对应一个Y,一个2X2的小方块对应一个U和V。对于所有YUV420图像,它们的Y值排列是完全相同的,因为只有Y的图像就是灰度图像。YUV420sp与YUV420p的数据格式它们的UV排列在原理上是完全不同的。420p它是先把U存放完后,再存放V,也就是说UV它们是连续的。而420sp它是UV、UV这样交替存放的。(见下图)
有了上面的理论,我就可以准确的计算出一个YUV420在内存中存放的大小。
width * hight =Y(总和)
U = Y / 4  
V = Y / 4

所以YUV420 数据在内存中的长度是 width * hight * 3 / 2,

假设一个分辨率为8X4的YUV图像,它们的格式如下图:

YUV420sp格式如下图                                                                    YUV420p数据格式如下图

                  

有了上边的理论,我们可以对Android摄像头采集的YUV420sp数据做很多的转换,下面我写一个旋转90度的算法。

代码如下:

[java] view plaincopy

  1. public static void rotateYUV240SP(byte[] src,byte[] des,int width,int height)
  2. {
  3. int wh = width * height;
  4. //旋转Y
  5. int k = 0;
  6. for(int i=0;i<width;i++) {
  7. for(int j=0;j<height;j++)
  8. {
  9. des[k] = src[width*j + i];
  10. k++;
  11. }
  12. }
  13. for(int i=0;i<width;i+=2) {
  14. for(int j=0;j<height/2;j++)
  15. {
  16. des[k] = src[wh+ width*j + i];
  17. des[k+1]=src[wh + width*j + i+1];
  18. k+=2;
  19. }
  20. }
  21. }

结合上面的旋转算法,我在Android平台写了一个测试项目。

运行结果效果如下:

上边视频是摄像头的预览数据(预览数据的图像截图看不见,郁闷啊),所以我为了能让大家看到效果,专门拍了一张照片。

                                                   

时间: 2024-11-09 05:00:18

YUV420 数据分析的相关文章

firefox查看微信公众平台的数据分析时就出现不信任链接怎么办?

昨天用360清理垃圾后火狐主页的快速拨号栏消失了,整了半天还是无法使用就重装了一下firefox,导入备份的书签,添加自己所需的附加组件,设置为隐私模式,开始继续体验.按惯例打开微信公众平台,查看数据分析时出现火狐不信任链接提示,如下图1,"我已充分了解可能的风险"这个链接按钮被挡住了,无法点击,怎么办? 这个应该是火狐安全站点检测的原因,到"工具-选项-安全-例外-添加信任站点",输入公众平台的主域名, 添加好之后,保存,重启firefox,打开微信公众平台查看数

python的数据分析的学习方法

python数据分析的要求并不是软件开发的要求,确实,对于一门工具,不同目的的使用者,需要的技能是不一样的,比如刀这个工具,屠夫用它是杀猪的,厨师用它是切菜的,军人用它是保家卫国的,客人用它是切牛排的,每个人用的方式都不一样,对于刀的掌握方法都有特定的要求. python数据分析,就如同学excel做数据分析一样,都是从了解python如何打开使用,如何在里面处理数据,如何筛选数据,如何统计分析,如何图表展示.python只是工具,关键还是处理问题的思维方法.我们学习python的目的不是为了写

数据分析之Numpy库入门

1.列表与数组 在python的基础语言部分,我们并没有介绍数组类型,但是像C.Java等语言都是有数组类型的,那python中的列表和数组有何区别呢? 一维数据:都表示一组数据的有序结构 区别: 列表:数据类型可以不同,如:[3.1413,'pi',3.1404,[3.1402,2.34],'3.2376'] 数组:数据类型相同 .如[3.14,34.34,3433.3,343.23] 二维数据:二维数据由多个一维数据构成,是一维数据的集合形式!表格是典型的二维数据! 注意:表格的表头,可以是

【Python数据分析】用户通话行为分析

主要工作: 1.对从网上营业厅拿到的用户数据.xls文件,通过Python的xlrd进行解析,计算用户的主叫被叫次数,通话时间,通话时段. 2.使用matplotlib画图包,将分析的结果直观的绘制出来. 具体步骤: 1.分析须要的内容 excel文件中包含很多信息,我们分析的时候须要用到的包括,通话起始时间.通话时长.呼叫类型,号码. 使用xlrd模块,读取excel中的数据,用列表的形式保存下来. 1 #coding=utf-8 2 import xlrd 3 4 def readData(

利用python进行数据分析--(阅读笔记一)

以此记录阅读和学习<利用Python进行数据分析>这本书中的觉得重要的点! 第一章:准备工作 1.一组新闻文章可以被处理为一张词频表,这张词频表可以用于情感分析. 2.大多数软件是由两部分代码组成:少量需要占用大部分执行时间的代码,以及大量不经常执行的“粘合剂代码”. cython已经成为python领域中创建编译型扩展以及对接c/c++代码的一大途径. 3.在那些要求延迟性非常小的应用程序中(例如高频交易系统),为了尽最大可能地优化性能,耗费时间使用诸如C++这样更低级.更低生产率的语言进行

《Python数据分析常用手册》一、NumPy和Pandas篇

一.常用链接: 1.Python官网:https://www.python.org/ 2.各种库的whl离线安装包:http://www.lfd.uci.edu/~gohlke/pythonlibs/#scikit-learn 3.数据分析常用库的离线安装包(pip+wheels)(百度云):http://pan.baidu.com/s/1dEMXbfN 密码:bbs2 二.常用库 1.NumPy NumPy是高性能科学计算和数据分析的基础包.部分功能如下: ndarray, 具有矢量算术运算和

物联网将对大数据分析产生哪些影响?

数据一直在业务中发挥关键作用,但大数据分析的兴起,大量存储的信息可以在计算上挖掘出来,揭示有价值的见解.模式和趋势,使其在现代商业领域几乎不可或缺.收集和分析这些数据并将其转化为可行的结果的能力是成功的关键. 随着物联网的发展,这一过程变得越来越复杂,在日常生活中,从车辆到商店展示,到智能家居自动化技术,如恒温器和水位显示器,都能产生大量的数据.物联网带来了各种新的分析挑战,而更快适应这一新现实的企业将获得明显的优势. 改变基础设施的需求 物联网产生的数据面临的主要问题之一就是它的规模.英特尔公

基于Hadoop离线大数据分析平台项目实战

基于Hadoop离线大数据分析平台项目实战  课程学习入口:http://www.xuetuwuyou.com/course/184 课程出自学途无忧网:http://www.xuetuwuyou.com 课程简介: 某购物电商网站数据分析平台,分为收集数据.数据分析和数据展示三大层面.其中数据分析主要依据大数据Hadoop生态系统常用组件进行处理,此项目真实的展现了大数据在企业中实际应用. 课程内容 (1)文件收集框架 Flume ①Flume 设计架构.原理(三大组件) ②Flume 初步使

Power BI教程_Power BI数据分析快速上手及案例实战

Power BI数据分析快速上手及案例实战 课程学习地址:http://www.xuetuwuyou.com/course/194 课程出自学途无忧网:http://www.xuetuwuyou.com 课程简介 本课程在<Power BI 数据分析快速上手>基础上结合大量的实例,深入讲解PowerBI中看似难懂的各种概念.操作, 并结合行业中的典型案例贯穿了从初级的数据透视表工具.数据透视表选项.数据透视表的刷新.数据透视表中的排序,到中级的动 态数据透视表的创建.数据透视表函数 GETPI