初学opencv c++学习笔记(二)图像空间色彩转换cvtColor() | 您所在的位置:网站首页 › cv_rgb2gray › 初学opencv c++学习笔记(二)图像空间色彩转换cvtColor() |
对图像的色彩转换用到cvtColor()函数,本章将对此其用法进行解析。 目录 一、色彩空间转换 官方定义 函数参数解释 代码演示 RGB——HSV RGB——GRAY BGR——RGB 总结 提示:以下是本篇文章正文内容,下面案例可供参考 一、色彩空间转换APL:cvtColor() 官方定义 void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 ); 函数参数解释1.src(source):输入的源图像。为矩阵形式。 2.dst(destination):输出的目标图像,即经过色彩转后我们需要得到的图像。也为矩阵形式。 3.code:颜色空间转换的标识符,表示我们所要进行空间转换的结果。 code的参数多达200多,在此列举一些常用的参数,更多参数请查阅opencv官方文档 空间转换标识符codeBGR——灰度COLOR_BGR2GRAY6RGB——灰度COLOR_RGB2GRAY 7灰度——RGB/BGRCOLOR_GRAY2RGB = COLOR_GRAY2BGR 8BGR——HSVCOLOR_BGR2HSV40RGB——HSV COLOR_RGB2HSV 41HSV——BGR COLOR_HSV2BGR 54HSV——RGB COLOR_HSV2RGB 55BGR——RGB RGB——BGR COLOR_BGR2RGB = COLOR_RGB2BGR 4注意!此处有知识点!在opencv中彩色图像(RGB图像)按照BGR顺序进行存储。 所以以彩色图像为源图像进行颜色空间转换时,注意是“BGR2 ” 4.dstCn:目标图像的通道数。 默认值为0,表示目标图像取源图像的通道数 。 代码演示 RGB——HSV RGB——GRAY #include #include using namespace std; using namespace cv; int main(int argc, char** argv) { Mat str = imread("C:/素材/11.jpg");//读取图片,定义Mat类型,不设置imread的第二个参数默认读入彩色图片 Mat imghsv,imggray;//定义目标图像 cvtColor(str,imghsv,COLOR_BGR2HSV);//将str转换为HSV图像保存在imghsv中 cvtColor(str, imggray, COLOR_BGR2GRAY);//将str转换为GRAY图像,保存在imggray中 if (str.empty())//判断是否找到图片 { printf(“没有找到图片”); return -1; } else { //WINDOW_FREERATIO显示的大小可以自由更改 //WINDOW_AUTOSIZE显示大小为图片自定义大小,不可更改 namedWindow("原图”, WINDOW_FREERATIO); imshow("原图”,str);//显示源图片 namedWindow("HSV图像”, WINDOW_FREERATIO); imshow("HSV图像”, imghsv);//显示HSV图像 namedWindow("GRAY图像”, WINDOW_FREERATIO); imshow("GRAY图像”, imggray);//显示GRAY图像 waitKey(0);//显示的毫秒时间,函数参数>0表示显示的时间,否则为一直显示 destroyAllWindows();//销毁所有窗口 } return 0; }彩色图像三通道顺序变化(还挺好看) 以上就是颜色空间转换的内容,大家快动手试试叭!欢迎在评论区交流~ |
CopyRight 2018-2019 实验室设备网 版权所有 |