quickopencv.h文件
#includeusing namespace cv; class QuickDemo { public: void colorSpace_Demo(Mat &image); };
quickdemo.cpp文件
#includevoid QuickDemo::colorSpace_Demo(Mat &image) { Mat gray, hsv; cvtColor(image, hsv, COLOR_BGR2HSV); cvtColor(image, gray, COLOR_BGR2GRAY); imshow("hsv",hsv); imshow("gray", gray); imwrite("F:/OpenCV/material/hsv.png",hsv); imwrite("F:/OpenCV/material/gray.png", gray); }
main.cpp
#includeHSV颜色模型:H–色调,S–饱和度,V–明度 1、颜色空间转换函数:cvtColor()#include #include using namespace cv; using namespace std; int main(int argc, char ** argv) { Mat src = imread("F:/OpenCV/material/lena.jpg",IMREAD_UNCHANGED); if (src.empty()) { printf("Error!"); return -1; } namedWindow("input", WINDOW_FREERATIO); imshow("input", src); QuickDemo qd; qd.colorSpace_Demo(src); waitKey(0); destroyAllWindows(); return 0; }
CV_EXPORTS_W void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 );
@功能:将图像从一个颜色空间转换为另一个颜色空间。
该函数将输入图像从一个颜色空间转换为另一个颜色空间。 在转换的情况下从RGB颜色空间,通道的顺序应该明确指定(RGB或BGR)。 请注意OpenCV中的默认颜色格式通常被称为RGB,但它实际上是BGR字节是相反的)。 所以一个标准(24位)彩色图像的第一个字节将是一个8位的蓝色组件时,第二个字节为绿色,第三个字节为红色。
@src:输入图像:8位无符号,16位无符号(CV_16UC…) ,或者单精度浮点。
@dst:DST输出与src相同大小和深度的图像。
@code:颜色空间转换代码(参见# colorconverversioncodes)
COLOR_BGR2GRAY – 6 彩色到灰度
COLOR_GRAY2BGR – 8 灰度到彩色
COLOR_BGR2HSV – 40 BGR到HSV
COLOR_HSV2BGR – 54 HSV到BGR
@dstCn :dstCn目标图像中的通道数; 如果该参数为0,则表示通道是自动从SRC和代码派生出来的。
CV_EXPORTS_W bool imwrite( const String& filename, InputArray img,
const std::vector& params = std::vector());
@功能:将图像保存到指定文件。
@filename:文件名称
@img:(Mat或Mat的矢量)图像或需要保存的图像



