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

相关推荐
火山引擎开发者社区7 小时前
技术速递|使用 GitHub Copilot CLI 构建 Emoji 列表生成器
人工智能
codefan※8 小时前
干掉“幻觉“实战:如何构建企业级知识图谱增强 RAG
人工智能·知识图谱
wukangjupingbb8 小时前
传统基于药物 SMILES 序列和蛋白质氨基酸序列的 DTI(Drug-Target Interaction)预测方法的缺陷
人工智能
沪漂阿龙8 小时前
Codex 额度重置周期变化:AI 编程免费试玩时代正在结束
人工智能
TickDB9 小时前
美股行情 API 接入避坑:REST 快照、WebSocket 推送、盘前盘后数据的边界
人工智能·python·websocket·行情数据 api
装不满的克莱因瓶9 小时前
深入理解卷积神经网络(CNN)——从原理到代码实践
人工智能·神经网络·cnn
完成大叔9 小时前
模块二,Agent知识图谱的工具链思考
人工智能
lauo9 小时前
ibbot手机发布:搭载poplang技术 + token节点经济,革新AI手机体验
人工智能·智能手机
咖啡星人k9 小时前
云端开发环境技术架构深度解析:从容器隔离到AI Agent集成
人工智能·架构
袋鼠云数栈9 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能