初学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;}
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()相关推荐
- 【计算机视觉】opencv入门学习笔记Part.1
[计算机视觉]opencv入门学习笔记Part.1 1 前言 1.1 opencv概述(摘取自百度百科) 1.2 图像概念引入 1.3 安装opencv库 2 图像基本操作 2.1 图像的读取 2.2 ...
- linux学习笔记二
linux学习笔记二 文章目录 linux学习笔记二 finding finding hyx@hyx-computer:~$ cd mnt -bash: cd: mnt: No such file o ...
- qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
原博主博客地址:http://blog.csdn.net/qq21497936 本文章博客地址:http://blog.csdn.net/qq21497936/article/details/7851 ...
- [转载]dorado学习笔记(二)
原文地址:dorado学习笔记(二)作者:傻掛 ·isFirst, isLast在什么情况下使用?在遍历dataset的时候会用到 ·dorado执行的顺序,首先由jsp发送请求,调用相关的ViewM ...
- PyTorch学习笔记(二)——回归
PyTorch学习笔记(二)--回归 本文主要是用PyTorch来实现一个简单的回归任务. 编辑器:spyder 1.引入相应的包及生成伪数据 import torch import torch.nn ...
- tensorflow学习笔记二——建立一个简单的神经网络拟合二次函数
tensorflow学习笔记二--建立一个简单的神经网络 2016-09-23 16:04 2973人阅读 评论(2) 收藏 举报 分类: tensorflow(4) 目录(?)[+] 本笔记目的 ...
- Scapy学习笔记二
Scapy学习笔记二 Scapy Sniffer的用法: http://blog.csdn.net/qwertyupoiuytr/article/details/54670489 Scapy Snif ...
- Ethernet/IP 学习笔记二
Ethernet/IP 学习笔记二 原文链接:http://wiki.mbalib.com/wiki/Ethernet/IP 1.通信模式 不同于源/目的通信模式,EtherNet/IP 采用生产/消 ...
- opencv进阶学习笔记3:像素运算和图像亮度对比度调节
基础版传送门: python3+opencv学习笔记汇总目录(适合基础入门学习) 进阶版目录: python+opencv进阶版学习笔记目录(适合有一定基础) 像素运算 要求两张图大小,以及格式(np ...
最新文章
- 针对智能车声标组的声音定位方案研究
- CocoaPods公有库的创建
- 前端趋势榜:上周最有意思、又实用的 10 大 Web 项目 - 210821
- 1042 字符统计 (20分)——16行代码满分
- 什么是5G NR技术?一文带你深入了解5G NR技术
- [Python]爬拉钩(Python职位)
- Python使用Telnetlib模块实现telnet远程操作
- VGG16和VGG19介绍
- Java写的答题助手项目分析与总结(三)
- c51为啥要宏定义时钟_C51 DS1302实时时钟的应用(2-26)
- 第六章 现在给我道歉还来得及~修改登录cookie进后台上传muma
- 在mosquitto和Node-Red间使用基于的MQTTS双向认证通讯( 私有CA)
- 2048总结 python_2048游戏的python实现
- 如何计算游戏客户端与服务器之间的时间延迟?
- 亚特兰提斯之帝国的遗址
- Google浏览器怎么导入证书
- 国内外IP黑名单查询网站和邮件相关DNS的查询大全
- mysql 写锁和读锁_mysql的封锁机制以及读锁和写锁的区别
- 关于编程语言和编程工具
- Java 并发编程_详解 synchronized 和 volatile