要点:
1.读取图片
//读取图片
Mat Imags = imread("C:/Users/齐明洋/Desktop/tem.jpg");
//读取图片并转化为灰度图
Mat Imags = imread("C:/Users/齐明洋/Desktop/tem.jpg",0);
2.定义显示图片窗口
//定义窗口(可有可无),用来显示图片
namedWindow("测试窗口", WINDOW_AUTOSIZE);//窗口自动适应图片大小,大小不可手动更改
namedWindow("测试窗口", WINDOW_NORMAL);//用户可以改变窗口大小
3.颜色空间转换函数 cvtColor()
//颜色空间转换函数(InputArray src, OutputArray dst, int code,int dstCn=0)
//InputArray src :原图像
//OutputArray dst :进行颜色空间变换后的图像
//int code :转换的代码或标识,即要转换成什么颜色空间的图片
//int dstCn = 0 :目标图像通道数,可以使用默认值,什么都不写
cvtColor(Imags, Imags2, COLOR_BGR2HSV);//RGB 颜色模型向 HSV 颜色模型转换
4.HSV
RGB 和 CMY 颜色模型都是面向硬件的,而 HSV(Hue Saturation Value)颜色模型是面向用户的。
HSV 是根据颜色的直观特性由 A. R. Smith 在1978年创建的一种颜色空间, 也称六角锥体模型(Hexcone Model)。
这个模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)。
5.显示图片
//显示图片,默认窗口自动适应图片大小,大小不可手动更改
imshow("测试窗口", Imags);
6.保存图片
//保存图片
imwrite("C:/Users/齐明洋/Desktop/修改后图片.png", Imags);
代码示例:
#include <opencv.hpp>
using namespace cv;
int main(int argc,char **argv) {
Mat Imags = imread("C:/Users/齐明洋/Desktop/tem.jpg");
if (Imags.empty()) {
printf("不能加载图像!");
return -1;
}
namedWindow("测试窗口2", WINDOW_NORMAL);
Mat Imags2;
cvtColor(Imags, Imags2, COLOR_BGR2HSV);//RGB 颜色模型向 HSV 颜色模型转换
imshow("测试窗口", Imags);
imshow("测试窗口2", Imags2);
imwrite("C:/Users/齐明洋/Desktop/修改后图片.png", Imags);
waitKey(0);
return 0;
}
运行结果: