如何在 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