OpenCV 图形API(52)颜色空间转换-----将 NV12 格式的图像数据转换为 RGB 格式的图像

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

将图像从 NV12 (YUV420p) 色彩空间转换为 RGB。该函数将输入图像从 NV12 色彩空间转换到 RGB。Y、U 和 V 通道值的常规范围是 0 到 255。

输出图像必须是 8 位无符号三通道图像 CV_8UC3。

注意

函数的文字 ID 是 "org.opencv.imgproc.colorconvert.nv12torgb"

函数原型

cpp 复制代码
GMat cv::gapi::NV12toRGB 
(
 	const GMat &  	src_y,
	const GMat &  	src_uv 
) 	

参数

  • 参数 src_y:输入图像,8 位无符号单通道图像 CV_8UC1。
  • 参数 src_uv:输入图像,8 位无符号双通道图像 CV_8UC2。

代码示例

cpp 复制代码
#include <opencv2/gapi.hpp>
#include <opencv2/gapi/core.hpp>
#include <opencv2/gapi/imgproc.hpp>
#include <opencv2/opencv.hpp>

int main()
{
    // 假设我们有一个宽度为640像素,高度为480像素的图像
    int width  = 640;
    int height = 480;

    // 创建Y和UV平面的Mat对象
    cv::Mat yPlane( height, width, CV_8UC1 );           // Y 平面
    cv::Mat uvPlane( height / 2, width / 2, CV_8UC2 );  // UV 平面

    // 填充一些随机数据作为示例
    cv::randu( yPlane, cv::Scalar( 0 ), cv::Scalar( 255 ) );
    cv::randu( uvPlane, cv::Scalar( 0 ), cv::Scalar( 255 ) );

    // 定义G-API图
    cv::GMat src_y, src_uv;
    auto rgb = cv::gapi::NV12toRGB( src_y, src_uv );

    cv::GComputation comp( cv::GIn( src_y, src_uv ), cv::GOut( rgb ) );

    // 创建输出矩阵
    cv::Mat out_rgb;

    // 应用计算图并执行转换,指定使用默认的CPU后端
    comp.apply( cv::gin( yPlane, uvPlane ), cv::gout( out_rgb ), cv::compile_args( cv::gapi::kernels() ) );

    // 显示结果
    cv::imshow( "Converted RGB Image", out_rgb );
    cv::waitKey( 0 );

    return 0;
}

运行结果

相关推荐
网易云信1 分钟前
Cursor点燃个人开发者,企业级AI为何频频受挫?Agent工厂从提效工具到AI员工的跃迁
人工智能·开源
网易云信5 分钟前
解锁触手可及的温暖:网易智企 x Wander Puffs AI 云游泡芙
人工智能
转转技术团队16 分钟前
从 PRD 到可验证代码:AI 需求开发闭环实践
人工智能
机器之心24 分钟前
飞书让表格变成「AI同事」加入群聊,不打开表就能用表
人工智能·openai
Bigfish_coding1 小时前
前端转agent-【python】-15 AI Agent 可观测性入门:LangFuse 链路追踪、Token 监控与 LLM 质量评估
人工智能
我唔知啊1 小时前
我把 Claude Code 拆成了一间餐厅:从一句话到一次回复,中间到底发生了什么
人工智能
Harry技术1 小时前
02 · Codex 核心概念:代理、沙箱、审批和项目说明书
人工智能
阿里云大数据AI技术2 小时前
Agentic Memory Extension 支持对接主流Agent - 适用于 Claude Code、CodeX等
人工智能·agent
我唔知啊2 小时前
不是让 AI 写代码,我是在指挥 AI 干活:一套打磨出来的 AI 编程工作流
人工智能
ZzT2 小时前
在 GitHub 上 @一下 claude,它自己把 issue 改成 PR
人工智能·开源