本系列代码托管于:https://github.com/chintsan-code/opencv4-tutorials
本篇使用的项目为:convert_color_space
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, const char** argv) {
Mat src = imread("../sample/lena512color.bmp");
if (src.empty())
{
cout << "could not load image..." << endl;
return -1;
}
imshow("src", src);
Mat gray, hsv;
cvtColor(src, gray, COLOR_BGR2GRAY);
cvtColor(src, hsv, COLOR_BGR2HSV);
imshow("gray", gray);
imshow("hsv", hsv);
imwrite("gray.bmp", gray);
imwrite("hsv.bmp", hsv);
waitKey(0);
destroyAllWindows();
return 0;
}
cvtColor:将一张图像从一个彩色色彩空间转换到另一个
void cv::cvtColor( cv::InputArray src, cv::OutputArray dst, int code, int dstCn = 0 );
- src:输入图像
- dst:输出图像,与src保持相同的size和depth
- code:色彩空间转换代码,常见的有:
- COLOR_BGR2GRAY: 彩色转到灰度
- COLOR_GRAY2BGR:灰度转到彩色
- COLOR_BGR2HSV:BGR转到HSV
- COLOR_HSV2BGR:HSV转到BGR
- COLOR_BGR2RGB:BRG转到RGB
- COLOR_RGB2BGR:RGB转到BRG
- ……
- dstCn:dst的通道数,如果为0则表示与src一致
imwrite:保存一张图像到指定文件
bool cv::imwrite( const cv::String& filename, cv::InputArray img,
const std::vector<int>& params = std::vector<int>());
- filename:指定文件的文件名,必须加上后缀,因为保存的文件格式是有该后缀决定的
- img:要保存的图像对象
- params:指定保存格式参数,参见cv::ImwriteFlags
- 返回值:保存成功返回true,失败返回false
学到了!
@歪猴 谢谢