一、编程环境:
OpenCV | 4.1.0 |
IDE | Visual Studio 2017 Enterprise (15.9.13) |
操作系统 | Windows 10 x64 中文专业版 (1903) |
二、图像色彩空间:
- RGB色彩空间
- HSV色彩空间
- YUV色彩空间
- YCrCb色彩空间
三、示例代码:
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main(int argc, const char *argv[])
{
Mat src = imread("../images/test.jpg");
if (src.empty()) {
printf("不能加载图像!\n");
return -1;
}
namedWindow("1--原图1", WINDOW_AUTOSIZE);
imshow("1--原图1", src);
//RGB to HSV
Mat hsv;
cvtColor(src, hsv, COLOR_BGR2HSV);
imshow("2--RGB 转 HSV", hsv);
//RGB to YUV
Mat yuv;
cvtColor(src, yuv, COLOR_BGR2YUV);
imshow("3--RGB 转 YUV", yuv);
//RGB to YCrCb
Mat ycrcb;
cvtColor(src, ycrcb, COLOR_BGR2YCrCb);
imshow("4--RGB 转 YCrCb", ycrcb);
Mat src2 = imread("../images/GreenBackground01.jpg");
imshow("5--原图2", src2);
cvtColor(src2, hsv, COLOR_BGR2HSV);
Mat mask;
//提取指定色彩范围区域
inRange(hsv, Scalar(35, 43, 46), Scalar(77, 255, 255), mask);
imshow("6--蒙板", mask);
Mat dst;
bitwise_and(src2, src2, dst, mask=mask);
imshow("7--蒙板效果", dst);
waitKey(0);
return 0;
}
四、运行效果: