- 操作系統:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 編程語言:C++11
算法描述
將圖像從LUV顏色空間轉換為BGR顏色空間。
該函數將輸入圖像從LUV顏色空間轉換為BGR。B、G和R通道值的常規范圍是0到255。
輸出圖像必須是8位無符號3通道圖像(CV_8UC3)。
cv::gapi::I4202RGB 是 OpenCV G-API 模塊中用于將 I420(YUV 4:2:0) 格式的圖像數據轉換為 RGB 格式的一個函數。G-API(Graph API)是OpenCV中的一個模塊,旨在通過定義圖像處理操作的高效圖形來加速計算機視覺任務,并且可以在不同的后端上運行,如CPU、GPU等。
注意:
函數的文本ID是"org.opencv.imgproc.colorconvert.luv2bgr"
函數原型
GMat cv::gapi::LUV2BGR
(const GMat & src
)
參數
- 參數src - 輸入圖像:8位無符號3通道圖像(CV_8UC3)。
返回值
返回一個新的 GMat 對象,表示從輸入的 I420 圖像數據轉換得到的 RGB 格式的圖像數據。
使用場景
當你需要在視頻幀處理或圖像分析任務中使用基于RGB的顏色空間,但你的輸入源提供的是I420格式的數據時,這個函數特別有用。例如,在處理來自攝像頭或其他影像設備的數據時,這些設備可能會輸出YUV格式的數據,特別是I420格式,因為這種格式有利于壓縮和傳輸。為了進行后續的色彩處理或者顯示,你可能需要將其轉換為RGB格式。
代碼示例
#include <opencv2/gapi.hpp>
#include <opencv2/gapi/core.hpp>
#include <opencv2/opencv.hpp>int main()
{// 假設我們有一個LUV格式的圖像cv::Mat luvGBR = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png", cv::IMREAD_COLOR );cv::Mat luvImg;cv::cvtColor( luvGBR, luvImg, cv::COLOR_BGR2Luv );if ( luvImg.empty() ){std::cerr << "Error: Image not found or unable to load." << std::endl;return -1;}// 如果你的輸入圖像是其他格式(如BGR),你可以先將其轉換為LUVcv::Mat luvMat;cv::cvtColor( luvImg, luvMat, cv::COLOR_BGR2Luv );// 定義G-API圖cv::GMat in;auto out = cv::gapi::LUV2BGR( in );cv::GComputation comp( cv::GIn( in ), cv::GOut( out ) );cv::Mat bgrImg;try{// 應用到輸入圖像并獲取輸出圖像comp.apply( luvMat, bgrImg, cv::compile_args( cv::gapi::kernels() ) );// 顯示結果cv::imshow( "LUV image", luvImg );cv::imshow( "BGR image", bgrImg );cv::waitKey();}catch ( const cv::Exception& e ){std::cerr << "OpenCV exception: " << e.what() << std::endl;}catch ( const std::exception& e ){std::cerr << "Error: " << e.what() << std::endl;}return 0;
}