网上都是yuv422转yuv420,很少有yuv420转yuv422。
本次从bgr转yuv420,然后基于yuv420转yuv422

int pixeltransform::bgr2yvyu422(cv::Mat srcimg, unsigned char *pdst)
{//BGR To I420cv::Mat dstimg;cv::cvtColor(srcimg, dstimg, cv::COLOR_BGR2YUV_I420);int width = srcimg.cols;int height = srcimg.rows;int nLenY = width * height;int nLenU = nLenY / 4;unsigned char *i420bytes = dstimg.data;unsigned char *i420y = NULL;i420y = (unsigned char *)malloc(width * height);unsigned char *i420u = NULL;i420u = (unsigned char *)malloc(width * height / 4);unsigned char *i420v = NULL;i420v = (unsigned char *)malloc(width * height / 4);memcpy(i420y, i420bytes, nLenY);  //Yfor (int i = 0; i < nLenU; i++) {i420u[i] = i420bytes[nLenY + i];          //Ui420v[i] = i420bytes[nLenY + nLenU + i];  //V}int ySrcIndex = 0;int uSrcIndex = 0;int vSrcIndex = 0;int yDstIndex = 0;//I420 to YUYVfor (int i = 0; i < height / 2; i++) {int uvWidth = width;for (int k = 0; k < uvWidth / 2; k++) {// Ypdst[yDstIndex] = i420y[ySrcIndex];pdst[yDstIndex + uvWidth * 2] = i420y[ySrcIndex + uvWidth];yDstIndex++;ySrcIndex++;// Updst[yDstIndex] = i420u[uSrcIndex];pdst[yDstIndex + uvWidth * 2] = i420u[uSrcIndex];yDstIndex++;// Ypdst[yDstIndex] = i420y[ySrcIndex];pdst[yDstIndex + uvWidth * 2] = i420y[ySrcIndex + uvWidth];yDstIndex++;ySrcIndex++;// Vpdst[yDstIndex] = i420v[vSrcIndex];pdst[yDstIndex + uvWidth * 2] = i420v[vSrcIndex];yDstIndex++;uSrcIndex += 1;vSrcIndex += 1;}yDstIndex += uvWidth * 2;ySrcIndex += uvWidth;}free(i420y);free(i420u);free(i420v);return 0;
}

yuv420转yuv422(yuyv)相关推荐

  1. YUV420、YUV422、RGB24转换

    //平面YUV422转平面RGB24 static void YUV422p_to_RGB24(unsigned char *yuv422[3], unsigned char *rgb24, int ...

  2. YUV420与YUV422区别

    Y:亮度分量    UV:色度分量 Y与RGB的演算关系为:Y = 0.2126 R + 0.7152 G + 0.0722 B YUV4:2:2或4:2:0都是指的Y分量和UV分量在一个像素点中占有 ...

  3. YUV422/YUV420

    YUV三种数据格式占用空间计算: YUV444 ==> YUV444 1920*1080 ==>  1920*1080个Y+1920*1080个U+1920*1080个V = 1920*1 ...

  4. yuv420 YUV422 YUV444格式及存储排列

    YUV420: YUV422: 另外,YUV422还有YUYV,YVYU,VYUY,UYVY四种排列(格式) YUV444:

  5. YUV422格式信号格式(以备学习之用)

    YUV信号有很多种,一般YUV420和YUV422用的比较多, YUV422格式,又分为很多小类,按照U.V的排列可以有YUYV,YVYU,UYVY,VYUY四种,其中,YUYVY一般又称作yuv2格 ...

  6. yuv420p 详解_图文详解YUV420数据格式

    YUV格式有两大类:planar和packed. 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V. 对于packed的YUV格式,每个像素点的Y ...

  7. 海思开发板中的YUV420格式解析

    一.什么是YUV YUV是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),是PAL和SECAM模拟彩色电视制式采用的颜色空间. YUV主要是用于优化彩色视频信号的传输,使其与早期的黑白电视机相容 ...

  8. YUV420转YUV444

    在最近的CCP测试中,需要使用YUV444的测试序列,而平时使用的全都是YUV420的序列,因此自己尝试用C写了一个YUV420转YUV444的程序. 1.YUV分三种采样方式: YUV444:对于每 ...

  9. YUYV422 转 YUV420 代码

    int YUV422To420(unsigned char yuv422[], unsigned char yuv420[], int width, int height) {int ynum = w ...

  10. yuv420p 详解_Android中的YUV格式解析

    一.YUV格式 YUV 表示三个分量, Y 表示 亮度(Luminance),即灰度值,UV表示色度(Chrominance),描述图像色彩和饱和度,指定颜色.YUV格式有YUV444. YUV422 ...

最新文章

  1. linux内核syscall_define6,Syscall系统调用Linux内核跟踪
  2. ASP.NET多种不同页面间数据传递的方法
  3. python学籍管理系统 flask_taskday05-Python之flask学习 web开发最基本的需要(特别详细且适用)...
  4. JAVA入门级教学之(逻辑(布尔)运算符)
  5. markdown编辑器基础语法总结
  6. docker镜像是否包含操作系统
  7. setUserVisibleHint-- fragment真正的onResume和onPause方法
  8. 8 更新全局变量_2月26日守望先锋版本更新
  9. window ngnix php配置文件,Window下PHP和Nginx的配置
  10. PHP闭包中使用use关键字
  11. 在C#中控制ListBox某一行的字体颜色
  12. Java核心技术(基础知识一)
  13. 安卓投屏软件_该内容只能用miracast投屏
  14. 魔窗使用笔记(穿透微信)
  15. cogs 1752 [BOI2007]摩基亚Mokia(cdq分治+树状数组)
  16. Python文本分析-常用中文停用词表(Chinese Stop Words)
  17. 数据相关的在职研究生_又一所双一流大学给予部分博士研究生退学处理,至少33名!...
  18. 【图像分割】基于方向谷形检测实现静脉纹路分割附MATLAB代码
  19. XMLHttpRequest简介
  20. VS中编译带Qt的他人项目,环境搭建及解决报错

热门文章

  1. 玉柴spn码故障对照表_玉柴共轨电喷发动机故障码一览表
  2. mac使用jeb记录
  3. php.ini gd_php开启GD库实现方法
  4. word 无法启动转换器wps32修复工具
  5. 小爱音箱 电脑 麦克风_小米发布两款小爱音箱新品:发力音质,加入蓝牙网关...
  6. 微信编辑器有哪些呢?
  7. 环境试验之模拟运输试验
  8. Sublime Text, MikTeX (或TeXLive), SumatraPDF 配置LaTeX开发环境
  9. 使用BCDboot工具,修复windows 系统启动,双启动菜单丢失故障
  10. ROS--基于机器人操作系统设计与实现