OpenCV 图形API(50)颜色空间转换-----将 NV12 格式的图像数据转换为平面 BGR(即BGRP,BGR Planar)格式函数NV12toBGRp()

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

算法描述

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

输出图像必须是一个8位无符号平面3通道图像 CV_8UC1。平面图像内存布局是在内存中连续排列的三个平面,因此图像的高度应该是plane_height*plane_number,图像类型为CV_8UC1。

注意
函数文本ID为"org.opencv.imgproc.colorconvert.nv12torgbp"

函数原型

GMatP cv::gapi::NV12toBGRp
(
 	const GMat &  	src_y,
	const GMat &  	src_uv 
) 	

参数

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

代码示例


#include <opencv2/opencv.hpp>
#include <opencv2/gapi.hpp>
#include <opencv2/gapi/core.hpp>
#include <opencv2/gapi/imgproc.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 平面

    // 这里我们可以填充一些假数据作为示例
    // 实际上,这些数据应该来自你的数据源(例如,视频解码)
    randu(yPlane, cv::Scalar(0), cv::Scalar(255));
    randu(uvPlane, cv::Scalar(0), cv::Scalar(255));

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

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

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

    // 应用计算图并执行转换
    comp.apply(yPlane, uvPlane, out_bgrp,
               cv::compile_args(cv::gapi::kernels()));

    // 将结果转换为BGR格式以便显示
    // 注意:由于BGRP是平面格式,我们可能需要调整它以正确显示
    // 在这个例子中,直接展示out_bgrp可能不会得到预期的结果,因为它是平面格式。
    // 对于展示目的,我们假设你已经将BGRP转换为连续的BGR格式,这通常涉及到一些额外的数据重组步骤。
    
    // 示例中简化处理,直接尝试展示转换后的图像
    cv::imshow("Converted BGR Image", out_bgrp);
    cv::waitKey(0);

    return 0;
}

运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村北头的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值