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

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()相关推荐

  1. 【计算机视觉】opencv入门学习笔记Part.1

    [计算机视觉]opencv入门学习笔记Part.1 1 前言 1.1 opencv概述(摘取自百度百科) 1.2 图像概念引入 1.3 安装opencv库 2 图像基本操作 2.1 图像的读取 2.2 ...

  2. linux学习笔记二

    linux学习笔记二 文章目录 linux学习笔记二 finding finding hyx@hyx-computer:~$ cd mnt -bash: cd: mnt: No such file o ...

  3. qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)

    原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...

  4. [转载]dorado学习笔记(二)

    原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...

  5. PyTorch学习笔记(二)——回归

    PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...

  6. tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数

    tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报  分类: tensorflow(4)  目录(?)[+] 本笔记目的 ...

  7. Scapy学习笔记二

    Scapy学习笔记二 Scapy Sniffer的用法: http://blog.csdn.net/qwertyupoiuytr/article/details/54670489 Scapy Snif ...

  8. Ethernet/IP 学习笔记二

    Ethernet/IP 学习笔记二 原文链接:http://wiki.mbalib.com/wiki/Ethernet/IP 1.通信模式 不同于源/目的通信模式,EtherNet/IP 采用生产/消 ...

  9. opencv进阶学习笔记3:像素运算和图像亮度对比度调节

    基础版传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版目录: python+opencv进阶版学习笔记目录(适合有一定基础) 像素运算 要求两张图大小,以及格式(np ...

最新文章

  1. 针对智能车声标组的声音定位方案研究
  2. CocoaPods公有库的创建
  3. 前端趋势榜:上周最有意思、又实用的 10 大 Web 项目 - 210821
  4. 1042 字符统计 (20分)——16行代码满分
  5. 什么是5G NR技术?一文带你深入了解5G NR技术
  6. [Python]爬拉钩(Python职位)
  7. Python使用Telnetlib模块实现telnet远程操作
  8. VGG16和VGG19介绍
  9. Java写的答题助手项目分析与总结(三)
  10. c51为啥要宏定义时钟_C51 DS1302实时时钟的应用(2-26)
  11. 第六章 现在给我道歉还来得及~修改登录cookie进后台上传muma
  12. 在mosquitto和Node-Red间使用基于的MQTTS双向认证通讯( 私有CA)
  13. 2048总结 python_2048游戏的python实现
  14. 如何计算游戏客户端与服务器之间的时间延迟?
  15. 亚特兰提斯之帝国的遗址
  16. Google浏览器怎么导入证书
  17. 国内外IP黑名单查询网站和邮件相关DNS的查询大全
  18. mysql 写锁和读锁_mysql的封锁机制以及读锁和写锁的区别
  19. 关于编程语言和编程工具
  20. Java 并发编程_详解 synchronized 和 volatile

热门文章

  1. MacBook Air M2无需虚拟屏启用Hidpi+任意缩放(22年9月)
  2. 音频分析之——时域转频域
  3. SQL函数---SQL NOW()
  4. 自制Microbit图形化编程小车
  5. 做好SCM,需要看的一些书籍
  6. 一个金蝶网址的网络爬虫
  7. 变量(什么是变量/变量的声明/命名的规范)
  8. ROS rplidar_ros package使用相关说明
  9. 2星|陈九霖《商业的逻辑》:曾经入狱的中航油(新加坡)掌门人的商业感想...
  10. 把商品添加到购物车的方法