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

这篇具有很好参考价值的文章主要介绍了初学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官方文档

空间转换 标识符 code
BGR——灰度 COLOR_BGR2GRAY 6
RGB——灰度

COLOR_RGB2GRAY

7
灰度——RGB/BGR

 COLOR_GRAY2RGB  

= COLOR_GRAY2BGR

8
BGR——HSV COLOR_BGR2HSV 40
RGB——HSV     COLOR_RGB2HSV       41
HSV——BGR    COLOR_HSV2BGR       54
HSV——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<opencv2/opencv.hpp>
#include<iostream>

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

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

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

 BGR——RGB

#include<opencv2/opencv.hpp>
#include<iostream>

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

彩色图像三通道顺序变化(还挺好看) 初学opencv c++学习笔记(二)图像空间色彩转换cvtColor()


总结

以上就是颜色空间转换的内容,大家快动手试试叭!欢迎在评论区交流~文章来源地址https://www.toymoban.com/news/detail-445748.html

到了这里,关于初学opencv c++学习笔记(二)图像空间色彩转换cvtColor()的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • opencv 图像色彩空间转化

    今天看了b站贾志刚的课,觉得不错,特地做学习笔记来和小伙伴分享 贾志刚的这个好像是2.0版本,30小时的,语言更加精炼,适合初级入门学习 第一节是常规安装   看他的步骤装就行了,记得配置完点应用再点确定,我第一次就是 没点然后就失败了,又得重配置一次 第二节就是基

    2024年02月22日
    浏览(46)
  • 我在Vscode学OpenCV 色彩空间转换

    即是颜色,一种人体视觉系统对光的反射的 不同波长 的感知的结果。人们又对不同的波长范围的电磁波定义可视光的“颜色”。 在日常生活、美术课中,通过把(红黄蓝)三种颜色成为”认为是能够混合得到其他所有颜色的颜料。 而对于光学,就把(红绿蓝 RGB )三基色【

    2024年02月05日
    浏览(44)
  • C++opencv 色彩空间转换和保存

    1.imwrite()函数       用于输出图像到文件 imwrite()格式: bool imwrite(const string filename, InputArray img, const vectorint params=vectorint()) 参数说明: 第一个参数:const string类型的filename,指写入的文件名。需要带上后缀,如“123.jpg”。 第二个参数:InputArray类型的img,一个mat类型的图像数

    2024年02月08日
    浏览(44)
  • OpenCV 4基础篇| 色彩空间类型转换

    RGB 图像是一种比较常见的色彩空间类型,除此之外,比较常见的还有以下类型: GRAY 色彩空间(即灰度图像) 、 XYZ 色彩空间 、 YCrCb 色彩空间 、 HSV 色彩空间 、 HLS 色彩空间 、 CIELab 色彩空间 、 CIELuv 色彩空间 等,这些不同的色彩空间,是根据不同角度进行定义的,比如从

    2024年02月21日
    浏览(38)
  • 使用matlab实现图像信号的色彩空间转换

    下面的这个代码是在使用了rgb2hsi()方法失败后,进行修改的。 rgb2hsi(img)这个方法可以将RGB图像转换为HIS图像;但是爆出了 Untitled5(line 5)hsi = rgb2hsi(img)这个错误。 查了下可能是因Matlab版本不支持rgb2hsi函数。Matlab版本较旧,所以就手动实现RGB到HSI的转换。 通过分离RGB通道,将图

    2024年02月04日
    浏览(49)
  • OpenCV 中的色彩空间 (C++ / Python)

    在本教程中,我们将了解计算机视觉中使用的流行色彩空间,并将其用于基于颜色的分割。我们还将分享 C++ 和 Python 的演示代码。

    2024年02月12日
    浏览(38)
  • 初学opencv c++学习笔记(五)透视变换--warpPerspective()

    这篇博客将用简单的口吻谈一谈透视变换是啥以及如何操作~    但是这篇博客,只要你看了,我相信会有收获~~~~~~~ ~~~~~~~~~   ~~~~~~~~~ 目录 一、透视变换介绍 1.基础介绍: 二、透视变换apl介绍---- warpPerspective() 1.官方定义 2.参数解释 三、搭配apl介绍---- getPerspectiveTransform()

    2024年01月21日
    浏览(48)
  • OpenCV(五):图像颜色空间转换

    目录 1.图像颜色空间介绍 RGB 颜色空间 2.HSV 颜色空间 3.RGBA 颜色空间 4.YUV 2.图像数据类型间的互相转换convertTo() 3.不同颜色空间互相转换cvtColor()  4.Android JNI demo 1.图像颜色空间介绍 RGB 颜色空间 RGB 颜色空间是最常见的颜色表示方式之一,其中 R、G、B 分别表示红色、绿色和蓝

    2024年02月10日
    浏览(50)
  • Qt-OpenCV学习笔记--基本函数操作--cv::convertTo(图像类型转换)

    不是所有格式的Mat型数据都能被使用。 目前OpenCV主要只支持单通道和3通道的图像,并且此时要求其深度为8bit和16bit无符号(即CV_16U),所以其他一些数据类型是不支持的,比如说float型等。 如果Mat类型数据的深度和通道数不满足上面的要求,则需要使用convertTo()函数和cvtColor(

    2024年02月04日
    浏览(60)
  • OpenCv色彩空间

    目录 一、RGB 二、图像处理入门 三、色彩空间的转换 在表示图像时,有多种不同的颜色模型,但最常见的是红、绿、蓝(RGB) 模型RGB 模型是一种加法颜色模型,其中原色 (在RGB模型中,原色是红色 R、绿色 G 和蓝色 B)混合在一起就可以用来表示广泛的颜色范围。 每个原色(R,G,

    2024年02月16日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包