yuv420转yuv422(yuyv)
网上都是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)相关推荐
- YUV420、YUV422、RGB24转换
//平面YUV422转平面RGB24 static void YUV422p_to_RGB24(unsigned char *yuv422[3], unsigned char *rgb24, int ...
- YUV420与YUV422区别
Y:亮度分量 UV:色度分量 Y与RGB的演算关系为:Y = 0.2126 R + 0.7152 G + 0.0722 B YUV4:2:2或4:2:0都是指的Y分量和UV分量在一个像素点中占有 ...
- YUV422/YUV420
YUV三种数据格式占用空间计算: YUV444 ==> YUV444 1920*1080 ==> 1920*1080个Y+1920*1080个U+1920*1080个V = 1920*1 ...
- yuv420 YUV422 YUV444格式及存储排列
YUV420: YUV422: 另外,YUV422还有YUYV,YVYU,VYUY,UYVY四种排列(格式) YUV444:
- YUV422格式信号格式(以备学习之用)
YUV信号有很多种,一般YUV420和YUV422用的比较多, YUV422格式,又分为很多小类,按照U.V的排列可以有YUYV,YVYU,UYVY,VYUY四种,其中,YUYVY一般又称作yuv2格 ...
- yuv420p 详解_图文详解YUV420数据格式
YUV格式有两大类:planar和packed. 对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V. 对于packed的YUV格式,每个像素点的Y ...
- 海思开发板中的YUV420格式解析
一.什么是YUV YUV是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),是PAL和SECAM模拟彩色电视制式采用的颜色空间. YUV主要是用于优化彩色视频信号的传输,使其与早期的黑白电视机相容 ...
- YUV420转YUV444
在最近的CCP测试中,需要使用YUV444的测试序列,而平时使用的全都是YUV420的序列,因此自己尝试用C写了一个YUV420转YUV444的程序. 1.YUV分三种采样方式: YUV444:对于每 ...
- YUYV422 转 YUV420 代码
int YUV422To420(unsigned char yuv422[], unsigned char yuv420[], int width, int height) {int ynum = w ...
- yuv420p 详解_Android中的YUV格式解析
一.YUV格式 YUV 表示三个分量, Y 表示 亮度(Luminance),即灰度值,UV表示色度(Chrominance),描述图像色彩和饱和度,指定颜色.YUV格式有YUV444. YUV422 ...
最新文章
- linux内核syscall_define6,Syscall系统调用Linux内核跟踪
- ASP.NET多种不同页面间数据传递的方法
- python学籍管理系统 flask_taskday05-Python之flask学习 web开发最基本的需要(特别详细且适用)...
- JAVA入门级教学之(逻辑(布尔)运算符)
- markdown编辑器基础语法总结
- docker镜像是否包含操作系统
- setUserVisibleHint-- fragment真正的onResume和onPause方法
- 8 更新全局变量_2月26日守望先锋版本更新
- window ngnix php配置文件,Window下PHP和Nginx的配置
- PHP闭包中使用use关键字
- 在C#中控制ListBox某一行的字体颜色
- Java核心技术(基础知识一)
- 安卓投屏软件_该内容只能用miracast投屏
- 魔窗使用笔记(穿透微信)
- cogs 1752 [BOI2007]摩基亚Mokia(cdq分治+树状数组)
- Python文本分析-常用中文停用词表(Chinese Stop Words)
- 数据相关的在职研究生_又一所双一流大学给予部分博士研究生退学处理,至少33名!...
- 【图像分割】基于方向谷形检测实现静脉纹路分割附MATLAB代码
- XMLHttpRequest简介
- VS中编译带Qt的他人项目,环境搭建及解决报错
热门文章
- 玉柴spn码故障对照表_玉柴共轨电喷发动机故障码一览表
- mac使用jeb记录
- php.ini gd_php开启GD库实现方法
- word 无法启动转换器wps32修复工具
- 小爱音箱 电脑 麦克风_小米发布两款小爱音箱新品:发力音质,加入蓝牙网关...
- 微信编辑器有哪些呢?
- 环境试验之模拟运输试验
- Sublime Text, MikTeX (或TeXLive), SumatraPDF 配置LaTeX开发环境
- 使用BCDboot工具,修复windows 系统启动,双启动菜单丢失故障
- ROS--基于机器人操作系统设计与实现