- 操作系統: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”
函數原型
GMat cv::gapi::NV12toRGB
(const GMat & src_y,const GMat & src_uv
)
參數
- 參數 src_y:輸入圖像,8 位無符號單通道圖像 CV_8UC1。
- 參數 src_uv:輸入圖像,8 位無符號雙通道圖像 CV_8UC2。
代碼示例
#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;
}