OpenCV:BGR/RGB转I420(颜色失真),再转NV12

RGB转I420由OpenCV实现,I420转NV12,要自己写代码了。

  • RGB转I420

    void convert()
    {
    cv::Mat yuv;
    cv::cvtColor(matBgr, yuv, cv::COLOR_RGB2YUV_I420);
    I420_TO_NV12(map_info.data, yuv.data, width, height);
    yuv.release();
    }

  • I420转NV12

    static void I420_TO_NV12(uchar* NV12, uchar* I420, const int width, const int height)
    {
    int ySize = width * height;
    int uvSize = ySize / 2;
    memcpy(NV12, I420, ySize);

    复制代码
      int uvIndex = 0;
      for (int i = ySize; i < ySize + uvSize; i += 2) {
          NV12[i+1] = I420[ySize + uvIndex];
          NV12[i  ] = I420[ySize + uvSize/2+uvIndex];
          uvIndex ++;
      }

    }

  • 颜色失真参考

https://blog.csdn.net/quantum7/article/details/153632326

相关推荐
陈天伟教授5 小时前
基于学习的人工智能(3)机器学习基本框架
人工智能·学习·机器学习·知识图谱
搞科研的小刘选手6 小时前
【厦门大学主办】第六届计算机科学与管理科技国际学术会议(ICCSMT 2025)
人工智能·科技·计算机网络·计算机·云计算·学术会议
fanstuck6 小时前
深入解析 PyPTO Operator:以 DeepSeek‑V3.2‑Exp 模型为例的实战指南
人工智能·语言模型·aigc·gpu算力
萤丰信息6 小时前
智慧园区能源革命:从“耗电黑洞”到零碳样本的蜕变
java·大数据·人工智能·科技·安全·能源·智慧园区
世洋Blog6 小时前
更好的利用ChatGPT进行项目的开发
人工智能·unity·chatgpt
serve the people9 小时前
机器学习(ML)和人工智能(AI)技术在WAF安防中的应用
人工智能·机器学习
0***K89210 小时前
前端机器学习
人工智能·机器学习
陈天伟教授10 小时前
基于学习的人工智能(5)机器学习基本框架
人工智能·学习·机器学习
m0_6501082410 小时前
PaLM-E:具身智能的多模态语言模型新范式
论文阅读·人工智能·机器人·具身智能·多模态大语言模型·palm-e·大模型驱动