如何在 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; }
输出
广告