YUV422 转换成 RGB

#define CLIPVALUE(x, minValue, maxValue) ((x) < (minValue) ? (minValue) : ((x) > (maxValue) ? (maxValue) : (x)))
#define YUVToR(Y, U, V) ( (Y) + 1.4075 * ((V) - 128) )
#define YUVToG(Y, U, V) ( (Y) - 0.3455 * ((U) - 128) - 0.7169 * ((V) - 128) )
#define YUVToB(Y, U, V) ( (Y) + 1.779 * ((U) - 128) )bool MyVideo::yuv422torgb(unsigned char *rgbImageData, unsigned char *yuvImageData, short width, short height)
{if (yuvImageData == NULL){return -1;}if (rgbImageData == NULL){rgbImageData = (unsigned char*)malloc(width * height * 3);}int y, u, v;int frame_size = width * height;for (int j = 0; j < height; j++){unsigned char* pRGB = rgbImageData + j * width * 3;unsigned char* pY = yuvImageData + j * width;unsigned char* pU = yuvImageData + frame_size + (j >> 1) * width;unsigned char* pV = pU + (frame_size >> 1);for (int i = 0; i < width; i++){y = *(pY + i);u = *(pU + (i >> 1));v = *(pV + (i >> 1));*(pRGB) = CLIPVALUE(YUVToB(y, u, v), 0, 255);*(pRGB + 1) = CLIPVALUE(YUVToG(y, u, v), 0, 255);*(pRGB + 2) = CLIPVALUE(YUVToR(y, u, v), 0, 255);pRGB += 3;}}return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269196.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

带参数的方法

1.语法&#xff1a; <访问修饰符>放回值类型<方法名><(形式方法列表)>{ //方法的主体 } 2.调用带参方法 语法&#xff1a;对象名.方法名&#xff08;参数1&#xff0c;参数2.....参数N&#xff09; 转载于:https://www.cnblogs.com/zyani/p/6…

【oracle灾备方案系列】基于DDS的Oracle复制容灾方案(三)

<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />【oracle灾备方案系列】基于DDS的Oracle灾备方案&#xff08;三&#xff09;1. 数据查询应用平台方案1.1. 构建企业的第二数据中心在基于DataGrid DDS产品实现灾备架构中&am…

MFC 让界面点击无效

把 Disableed 设置为 True 就是让界面不再接受鼠标等控制。

关于 There is no getter for property named ‘id‘ in ‘class java.lang.Integer‘

errMsgorg.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: There is no getter for property named parentId in class java.lang.Integer 加上 Param("")注解

HTML5录音控件

最近的项目又需要用到录音&#xff0c;年前有过调研&#xff0c;再次翻出来使用&#xff0c;这里做一个记录。 HTML5提供了录音支持&#xff0c;因此可以方便使用HTML5来录音&#xff0c;来实现录音、语音识别等功能&#xff0c;语音开发必备。但是ES标准提供的API并不人性化&a…

关闭 MFC 界面程序控制台输出窗口

MFC 界面控制台界面窗口&#xff0c;在运行程序的时候会弹出来&#xff0c; 为了调试可以显示输出 printf 或 cout 信息&#xff0c;要关闭的话在程序入口处添加freeconsole() 函数进行设置。 避免多个窗口显示影响操作 CMainFrame::CMainFrame() {// TODO: 在此添加成员初始化…

SVN更新的时候报断言失败解决办法

解决办法&#xff1a;没啥好方法&#xff0c;重新检出代码就好使了。 转载于:https://www.cnblogs.com/yuanchaoyong/p/6999496.html

高德 ASIC 256 模组快门状态实时获取方案

1、快门状态命令 这个状态是由 ASIC 程序操作快门后记录的&#xff0c;如果是断电下的意外振动关闭是无法记录的 2、快门状态获取解决办法 根据快门闭合后的特征: 1) 温度均匀&#xff0c; 目标物体温度基本等于快门温度 2) 图像无轮廓线条和角点 3、快门状态实时检测线程 实…

C#委托

委托是一种引用方法的类型。委托定义出它想要代表的方法的原型&#xff0c;然后它可以和任何符合它所定义的方法的原型相关联。但使用委托时就犹如你在调用一个方法。委托使你动态的调用方法变成可能。而动态调用方法的意义就在于你可以在任意的地方插入任意的代码//using Syst…

JS 倒计时插件

剩余时间 <span class"djtime"><i id"t_h"></i><span>:</span><i id"t_m"></i><span>:</span><i id"t_s"></i></span></span> <script type"…

c++ 简单抽象工厂实现方法

实现基类 Shape实现 Shape 基类子类 两个实现创建子类对象的工厂类 #include <iostream> #include <map> using namespace std; class Shape //接口 { public:Shape() {cout << "Shape" << endl;}virtual ~Shape(){cout << "~Sh…

mysql使用 BETWEEN AND 查询

例子&#xff1a;查询1000到1020区间的数据 BETWEEN AND

在观念上进行大的转变

第二代 google排名搜索引擎虽然比第一代在搜索速度、针对多种语言信息的扩展等方面有所改进&#xff0c;在以自然语言为查询语言方面也做了一些探索。然而&#xff0c;随着Internet的强势发展&#xff0c;网上庞大的数字化信息和人们获取所需信息能力之间的矛盾日益突出。IDC在…

PHP 执行系统外部命令 system() exec() passthru()

PHP中调用外部命令&#xff0c;可以用如下三种方法来实现&#xff1a;方法一&#xff1a;用PHP提供的专门函数&#xff08;四个&#xff09;&#xff1a;PHP提供4个专门的执行外部命令的函数&#xff1a;exec(), system(), passthru(), shell_exec()1&#xff09;exec()原型: s…

mysql使用IS NULL查询null值

mysql使用IS NULL查询null值

Huawei S8512

用户不能在同一单板上同时设置组播抑制功能和广播抑制功能&#xff0c;即一旦某单板有端口设置为广播抑制&#xff0c;该单板其他端口也不能设置组播抑制&#xff0c;反之亦然。只有单板所有端口均设置为广播抑制或组播抑制的默认抑制值时&#xff0c;端口才能修改为不同抑制功…

Python---时间函数

在Python中日期和时间可能涉及多个不同的数据类型和函数&#xff0c;本文将简要介绍一下。 一. 三种不同的数据类型 1. 时间戳&#xff1a;Unix纪元时间戳&#xff08;time模块中使用&#xff09;是一个浮点值或整型值&#xff0c;表示子1970年1月1日午夜0点&#xff08;UTC&am…