- 操作系統:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 編程語言:C++11
算法描述
將圖像從 RGB 色彩空間轉換為 HSV。該函數將輸入圖像從 RGB 色彩空間轉換到 HSV。R、G 和 B 通道值的常規范圍是 0 到 255。
輸出圖像必須是 8 位無符號三通道圖像 CV_8UC3。
注意:
函數的文字 ID 是 “org.opencv.imgproc.colorconvert.rgb2hsv”
函數原型
GMat cv::gapi::RGB2HSV
(const GMat & src
)
參數
- 參數 src: 輸入圖像,8 位無符號三通道圖像 CV_8UC3
代碼示例
#include <opencv2/opencv.hpp>
#include <opencv2/gapi.hpp>
#include <opencv2/gapi/core.hpp> // 包含核心功能
#include <opencv2/gapi/imgproc.hpp> // 包含圖像處理功能int main() {// 讀取一個BGR圖像cv::Mat bgr_img = cv::imread("/media/dingxin/data/study/OpenCV/sources/images/Lenna.png");if (bgr_img.empty()) {std::cerr << "Error: Image not found!" << std::endl;return -1;}// 定義G-API圖cv::GMat src;auto hsv = cv::gapi::RGB2HSV(src); // 盡管名為RGB2HSV,實際上處理的是BGR輸入cv::GComputation comp(cv::GIn(src), cv::GOut(hsv));// 創建輸出矩陣cv::Mat out_hsv;// 應用計算圖并執行轉換,指定使用默認的CPU后端comp.apply(cv::gin(bgr_img), cv::gout(out_hsv),cv::compile_args(cv::gapi::kernels()));// 顯示原始圖像cv::imshow("Original BGR Image", bgr_img);// 將HSV圖像拆分為單獨的通道以便于顯示std::vector<cv::Mat> hsv_channels;cv::split(out_hsv, hsv_channels);// 顯示HSV圖像的不同通道(注意:這些顯示可能需要調整以更好地可視化)cv::imshow("Hue Channel", hsv_channels[0]);cv::imshow("Saturation Channel", hsv_channels[1]);cv::imshow("Value Channel", hsv_channels[2]);cv::waitKey(0);return 0;
}