初学opencv c++学习笔记(二)图像空间色彩转换cvtColor() 您所在的位置:网站首页 cv_rgb2gray 初学opencv c++学习笔记(二)图像空间色彩转换cvtColor()

初学opencv c++学习笔记(二)图像空间色彩转换cvtColor()

2024-01-12 00:42| 来源: 网络整理| 查看: 265

对图像的色彩转换用到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/BGR

 COLOR_GRAY2RGB  

= COLOR_GRAY2BGR

8BGR——HSVCOLOR_BGR2HSV40RGB——HSV    COLOR_RGB2HSV      41HSV——BGR   COLOR_HSV2BGR      54HSV——RGB  COLOR_HSV2RGB     55

BGR——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; }

 BGR——RGB #include #include using namespace std; using namespace cv; int main(int argc, char** argv) { Mat str = imread("C:/素材/11.jpg"),imgRGB; cvtColor(str, imgRGB, COLOR_BGR2RGB); if (str.empty())//判断是否找到图片 { printf("没有找到图片"); return -1; } else { imshow("RGB图像", imgRGB); waitKey(0); } return 0; }

彩色图像三通道顺序变化(还挺好看)

总结

以上就是颜色空间转换的内容,大家快动手试试叭!欢迎在评论区交流~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有