void RGB24ToYUV420(int Width,int Height,uint8_t* pRGBBuffer,uint8_t*pYuvBuffer)
{uint8_t* yuvBuf=pYuvBuffer;//YUV空间int nWidth=Width;int nHeight=Height;//下面转换算法是网上查到的int i, j;uint8_t*bufY = yuvBuf;uint8_t*bufU = yuvBuf + nWidth * nHeight;uint8_t*bufV = bufU + (nWidth* nHeight* 1/4);uint8_t*Y=bufY;uint8_t*U=bufU;uint8_t*V=bufV;uint8_t*bufRGB;unsigned char y, u, v, r, g, b,testu,testv;if (NULL==pRGBBuffer){return ;}for (j = 0; j<nHeight;j++){bufRGB = pRGBBuffer + nWidth * (nHeight - 1-j) * 3 ;for (i = 0;i<nWidth;i++){int pos = nWidth * i + j;r= *(bufRGB++);g = *(bufRGB++);b = *(bufRGB++);y =(unsigned char)(( 66 * r + 129 * g +  25 * b + 128) >>8) + 16;//16v = (unsigned char)((-38 * r -  74 * g + 112 * b + 128) >>8) +128  ; //128u = (unsigned char)((112 * r -  94 * g -  18 * b + 128) >> 8) + 128 ;*(bufY++)=__max(0,__min(y, 255 ));if (j%2==0&&i%2 ==0){if (u>255){u=255;}if (u<0){u = 0;}*(bufU++) =u;//存u分量}else{//存v分量if (i%2==0){if (v>255){v = 255;}if (v<0){v = 0;}*(bufV++) =v;}}}}//    pVideoEncoder->m_pYUVFrame->data[0]=pVideoEncoder->yuv_buff;//    pVideoEncoder->m_pYUVFrame->data[1]=pVideoEncoder->yuv_buff+y_size;//    pVideoEncoder->m_pYUVFrame->data[2]=pVideoEncoder->yuv_buff+(y_size*5)/4;}

注意的是:QImage一定要转成Format_RGB888格式,否则会出现错误,倒立等情况
void SaveObject::acceptData(QImage t_image,int w,int h)
{
t_image = t_image.convertToFormat(QImage::Format_RGB888);

QImage转yuv420相关推荐

  1. AVFrame 与 yuv420那些事

    AVFrame 与 yuv420那些事 用ffmpeg编写播放器,本来一直是在解码后使用sws_scale转换一下格式,将yuv420p(或者其它格式)转换成AV_PIX_FMT_RGB32,然后保存 ...

  2. 【Qt】AVFrame转QImage

    FFmpeg的AVFrame转成Qt的QImage //头文件 #ifdef __cplusplus extern "C" {#endif #include <libavco ...

  3. 【Qt】QImage加载bmp位图数据

    QImage直接加载bmp文件 QImage image(image.bmp); QImage加载已经获取的bmp数据 unsigned char *imageData = NULL; int ima ...

  4. 【Qt】QImage、QPixmap、QBitmap和QPicture

    简述 Qt 提供了四个用于处理图像数据的类: QImage. QPixmap. QBitmap和QPicture.QImage是为 I/O 设计和优化的, 用于直接像素访问和操作, 而QPixmap是 ...

  5. 【Qt】QImage使用总结

    图像格式转换 由 RGB 格式转换成 BGR 格式 QImage::rgbSwapped() 返回一个QImage,其中所有像素的红色和蓝色组件的值被交换,有效地将RGB图像转换为BGR图像. QIm ...

  6. Mat 类型转 QImage 类型

    转自:https://blog.csdn.net/liyuanbhu/article/details/86307283 void Dialog::Mat2QImage(Mat image) {//图片 ...

  7. Qt的4个图像类QImage/QPixmap/QBitmap/QPicture 转

    Qt的4个图像类QImage/QPixmap/QBitmap/QPicture 转 (一)QPixmap和QImage的区别 http://www.thisisqt.com/forum/viewthr ...

  8. YUV420转YUV444 , YUV420转RGB

    我想大家应该知道了YUV的颜色表示原理即: Y = 0.299R + 0.587G + 0.114B  U = -0.147R - 0.289G + 0.436B  V = 0.615R - 0.51 ...

  9. 04 ffmpeg 从媒体文件解封装,输出YUV420图像

    输出AAC声音目前有点问题: 输出YUV420 很好 [root@localhost 04]# cat main.c #include <stdio.h>#include "li ...

  10. 【OpenGL】用OpenGL shader实现将YUV(YUV420,YV12)转RGB-(直接调用GPU实现,纯硬件方式,效率高)...

    这段时间一直在搞视频格式的转换问题,终于最近将一个图片的YUV格式转RGB格式转换成功了.下面就来介绍一下: 由于我的工程是在vs2008中的,其中包含一些相关头文件和库,所以下面只是列出部分核心代码 ...

最新文章

  1. html标记汇总,HTML标记语法汇总.doc
  2. 论外部调用代理应该属于那一层
  3. 算法--------最长连续序列(Java版本)
  4. Struts2拦截器简单示例
  5. bootstrap样式
  6. 被灵魂问倒:这个BUG为什么没测出来?
  7. 绝大部分人都错误的把赚钱或者人生都放在依靠外界
  8. Linux运维故障排查——SSH连接Fedora不成功的原因
  9. 数据结构上机实践第八周项目3-顺序串算法
  10. python : itertools 中的 islice : 获取迭代器结果的切片,消耗迭代器
  11. 大众点评 java_大众点评评分爬取-图文识别ORC
  12. mtcnn人脸检测中将ckpt训练模型转换为 npy保存
  13. java的测试岗位_JAVA测试岗位职责
  14. c51单片机渐变流水灯汇编语言,单片机闪烁灯流水灯汇编代码大全
  15. 全面解析 UI/UE/交互设计
  16. php 分享网 齐老师,令我难忘的齐老师
  17. Java工具类-获取请求ip/浏览器/操作系统/浏览器版本
  18. Intellij IDEA插件--Key Promoter X
  19. pygame 等有缘人接盘
  20. OpenCV之图像梯度

热门文章

  1. 厦大计算机学院2018夏令营6,2018年厦门大学建筑与土木工程学院保研夏令营通知...
  2. crackme--Cruehead-CrackMe-3
  3. 如何下载安装fireBug
  4. 在线查询QQ信息API QQAPI
  5. 怎么样使prestashop 运行速度更快
  6. EnableViewState详细分析
  7. 大学计算机基础简历制作,WORD制作新年贺卡和个人简历大学计算机基础课程设计报告书.doc...
  8. 二手笔记本测试软件,想买二手笔记本?先学会这些检测方法才最大限度不被坑...
  9. 键盘测试软件能自动,键盘测试软件哪个好用?2020键盘测试软件推荐
  10. jQuery橙色的网页右侧悬浮在线客服代码