- 操作系統:ubuntu22.04
- OpenCV版本:OpenCV4.9
- IDE:Visual Studio Code
- 編程語言:C++11
算法描述
將圖像從 RGB 色彩空間轉換為灰度。
R、G 和 B 通道值的常規范圍是 0 到 255。生成的灰度值計算方式如下:
dst ( I ) = 0.299 ? src ( I ) . R + 0.587 ? src ( I ) . G + 0.114 ? src ( I ) . B \texttt{dst} (I)= \texttt{0.299} * \texttt{src}(I).R + \texttt{0.587} * \texttt{src}(I).G + \texttt{0.114} * \texttt{src}(I).B dst(I)=0.299?src(I).R+0.587?src(I).G+0.114?src(I).B
注意:
函數的文字 ID 是 “org.opencv.imgproc.colorconvert.rgb2gray”
函數原型
GMat cv::gapi::RGB2Gray
(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() {// 讀取一個RGB圖像cv::Mat rgb_img = cv::imread("/media/dingxin/data/study/OpenCV/sources/images/Lenna.png");if (rgb_img.empty()) {std::cerr << "Error: Image not found!" << std::endl;return -1;}// 定義G-API圖cv::GMat src;auto gray = cv::gapi::RGB2Gray(src);cv::GComputation comp(cv::GIn(src), cv::GOut(gray));// 創建輸出矩陣cv::Mat out_gray;// 應用計算圖并執行轉換,指定使用默認的CPU后端comp.apply(cv::gin(rgb_img), cv::gout(out_gray),cv::compile_args(cv::gapi::kernels()));// 顯示結果cv::imshow("Original RGB Image", rgb_img);cv::imshow("Converted Gray Image", out_gray);cv::waitKey(0);return 0;
}