如何在 OpenCV 中使用 C++ 轉換顏色空間?
顏色空間是表示顏色的模型。描述顏色有不同的方法。例如,RGB、CYMK、HSV、灰度級等。
在這裡,我們使用了一個名為**'imgproc.hpp'**的新標頭檔案。這個**'imgproc.hpp'**是影像處理的縮寫。為了轉換顏色空間,我們需要使用OpenCV的**'cvtColor()'**函式。此函式在**'imgproc'**標頭檔案中定義。這就是為什麼我們包含了**'imgproc.hpp'**。
首先,我們聲明瞭兩個矩陣和兩個視窗。這些用於載入和顯示影像。然後我們將名為“cat.jpg”的影像載入到**'myImage'**矩陣中。之後我們使用了**'cvtColor(myImage, myImage_Converted, COLOR_RGB2GRAY)'**。此行將'myImage'的RGB顏色空間轉換為灰度,並將其儲存在'myImage_Converted'矩陣中。
**'cvtColor()'**函式的原始形式為:
cvtColor(Source Matrix, Destination Matrix, Color Space Conversion Code)
在此程式中,源矩陣為'myImage',目標矩陣為'myImage_Converted',顏色空間轉換程式碼為COLOR_RGB2GRAY。
以下程式將RGB影像轉換為OpenCV中的灰度影像。
示例
#include<iostream>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/imgproc/imgproc.hpp>
using namespace cv;
using namespace std;
int main(int argc, const char** argv) {
Mat myImage;//declaring a matrix to load the image//
Mat myImage_Converted;//declaring a matrix to store the converted image//
namedWindow("Actual_Image");//declaring window to show actual image//
namedWindow("Converted_Image");//declaring window to show converted image//
myImage = imread("cat.jpg");//loading the image in myImage matrix//
cvtColor(myImage,myImage_Converted, COLOR_RGB2GRAY);//converting RGB to Grayscale//
imshow("Actual_Image",myImage);//showing Actual Image//
imshow("Converted_Image",myImage_Converted);//showing Converted Image//
waitKey(0);//wait for key stroke
destroyAllWindows();//closing all windows
return 0;
}輸出

廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP