个人资料,仅供学习使用
修改时间——2022年2月6日 11:40:46
学习课程:OpenCV4 C++ 快速入门视频30讲
视频老师:贾志刚

02 图像色彩空间转换

opencv知识点:

  • 色彩空间转换函数 - cvtColor
  • 图像保存 - imwrite
  • 图像显示 - imshow

本课解决的问题:

  • 如何对图片进行色彩空间转换?
  • 如何保存图像?

1.准备事项

创建1个头文件quickopencv.h

#pragma once#include<opencv2/opencv.hpp>using namespace cv;/*
顾名思义:快速的演示。随着课程的推进,里面会有各种demo
*/
class QuickDemo {public:/*这就是第1个demo,色彩空间转换demo*/void colorSpace_Demo(Mat& image);
};

虽然是为了规范的演示,但不失为一个好习惯

2.色彩空间转换+图像保存

接下来我们进行图像的色彩空间转换,并把转换后的图像保存下来。

色彩空间转换有4种常用的方式

  • 彩色到灰度 - COLOR_BGR2GRAY 对应数值 6
  • 灰度到彩色 - COLOR_GRAY2BGR 对应数值 8
  • BGR到HSV - COLOR_BGR2HSV 对应数值 40
  • HSV到BGR - COLOR_HSV2BGR 对应数值 54

本文只演示了两种

#include<quickopencv.h>void QuickDemo::colorSpace_Demo(Mat& image) {Mat gray, hsv;cvtColor(image, hsv, COLOR_BGR2HSV);cvtColor(image, gray, COLOR_BGR2GRAY);/*cvtColor色彩空间转换共4个参数第1个参数 输入第2个参数 输出第3个参数 色彩空间转换方式第4个参数 通道数(不输入,则根据输入自动计算)*/imshow("HSV", hsv);imshow("灰度", gray);imwrite("D:/WorkSpace/Opencv/images/hsv.png", hsv);imwrite("D:/WorkSpace/Opencv/images/gray.png", gray);/*imwrite图像保存共3个参数第1个参数 路径+文件名第2个参数 输入第3个参数 特定格式编码对(一般用不到)*/}

quickopencv.h的include问题

在写quickdemo.cpp的时候,会出现include的错误提示

我们去,右键→属性→VC++→包含目录,进行配置

选择这个目录

主函数调用演示

#include<opencv2\opencv.hpp>
#include<quickopencv.h>
#include<iostream>using namespace cv;
using namespace std;int main(int argc, char** argv) {Mat src = imread("D:/WorkSpace/Opencv/images/hahaha.jpg");if (src.empty()) {printf("could not load image……\n");return -1;}imshow("输入窗口", src);//创建QuickDemo的对象,然后调用方法QuickDemo qd;qd.colorSpace_Demo(src);waitKey(0);destroyAllWindows();return 0;
}

运行结果

3.imshow的补充知识

imshow的两种方式

  • 默认支持显8位的图像,即[0,255]
  • 支持显示数据类型为浮点数的图像,这时[0,1]会映射到[0,255]

除了这两种,其他的显示多多少少会有问题,当我们用imshow的图像,输入图像最好是8位。

那什么图像是8位的?之后会讲解,不过目前可以知道,用imread读进来的,就是8位的

4.RGB和HSV

彩色图像的通道是什么呢?

通常彩色图像有BGR三个通道
B,G,R,即按照蓝 绿 红的通道顺序
3个通道都是[0,255],即有256 * 256 * 256种组合
如果加上透明通道A(alpha),透明通道也是[0,255],就有256 * 256 * 256 * 256种组合

HSV通道呢?

H(色调)范围[0,180]
S(饱和度)范围[0,255]
V(明度)范围[0,255]
其中HS表示颜色,V表示亮度

所以,不同的通道有不同的作用

比如:有时候有些东西不好处理,它没有一个专门的亮度通道
那我们调整亮度,我们就到HSV色彩空间处理就会更好一点,处理完之后再返回BGR色彩空间

本课所用API查阅

cvtColor



imwrite



imshow


【个人笔记】OpenCV4 C++ 快速入门 02课相关推荐

  1. 【个人笔记】OpenCV4 C++ 快速入门 29课

    个人资料,仅供学习使用 修改时间--2022年2月19日 15:02:27 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 29 高斯双边模糊 opencv知识点: 高斯双边模 ...

  2. 【个人笔记】OpenCV4 C++ 快速入门 26课

    个人资料,仅供学习使用 修改时间--2022年2月13日 20:49:07 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 26 直方图均衡化 opencv知识点: 均衡灰度图 ...

  3. 【个人笔记】OpenCV4 C++ 快速入门 20课

    个人资料,仅供学习使用 修改时间--2022年1月24日 22:09:02 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 20 图像翻转 opencv知识点: 图像翻转 - ...

  4. 【个人笔记】OpenCV4 C++ 快速入门 06课

    个人资料,仅供学习使用 修改时间--2022年2月10日 08:46:02 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 06 滚动条操作1.0 - 调整图像亮度 openc ...

  5. 【个人笔记】OpenCV4 C++ 快速入门 25课

    个人资料,仅供学习使用 修改时间--2022年2月13日 20:45:23 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 25 二维直方图 opencv知识点: 计算直方图数 ...

  6. 【个人笔记】OpenCV4 C++ 快速入门 23课

    个人资料,仅供学习使用 修改时间--2022年1月26日 00:49:43 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 23 视频处理与保存 opencv知识点: Vide ...

  7. 【个人笔记】OpenCV4 C++ 快速入门 22课

    个人资料,仅供学习使用 修改时间--2022年1月25日 22:09:17 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 22 视频文件摄像头使用 opencv知识点: VI ...

  8. 【个人笔记】OpenCV4 C++ 快速入门 19课

    个人资料,仅供学习使用 修改时间--2022年1月24日 20:17:13 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 19 图像放缩与插值 opencv知识点: 图像放缩 ...

  9. 【个人笔记】OpenCV4 C++ 快速入门 17课

    个人资料,仅供学习使用 修改时间--2022年1月23日 17:59:14 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 17 鼠标操作与响应 opencv知识点: 设置指定 ...

最新文章

  1. Java程序员必备的Intellij插件
  2. hadoop3.2.0集群搭建的一些坑!
  3. [修正] 移动平台曲线不平滑的问题(如:TRectangle, TPath...等)
  4. Nhibernate与Castle windsor (个人学习笔记1)
  5. Android Studio 使用Method trace,查看某进程的所有线程trace的方法
  6. 并查集的介绍和其六种优化(c++)
  7. Linux 下安装 yum
  8. vce 题库导入_PDF 题库转VCE 文件.docx
  9. 混淆矩阵 matlab代码示例
  10. 前缀列表ip prefix-list
  11. MacBook蓝牙鼠标 自动断开问题
  12. 《人性的弱点全集》- [美]戴尔·卡耐基/著
  13. 《深入浅出SpringCloud》SpringCloud整体架构概览
  14. 2019 HZNU Winter Training Day 14 Comprehensive Training
  15. jQuery实现悬浮窗口
  16. DDN - Digital Data Network
  17. 组合、聚合、继承详解
  18. php redis 唯一id,PHP + Redis 实现一个简单的twitter
  19. 计算机屏幕怎么拆,aoc显示器怎么拆解?拿掉器的拆解方法!
  20. 如何用 Python 找出某月的第一天

热门文章

  1. 笔记︱范数正则化L0、L1、L2-岭回归Lasso回归(稀疏与特征工程)
  2. [机器学习]推荐系统介绍
  3. mven2 + androMDA 初探
  4. Ant Desing Pro2.0(一)项目初始化
  5. Android API级别、代号、发布时间及平台亮点整理
  6. spring boot 1.5.4 整合webService(十五)
  7. 【算法导论】简单哈希表的除法实现
  8. cvc-complex-type.2.3: Element 'beans' cannot have character [children]
  9. 微软BI 之SSIS 系列 - 通过设置 CheckPoints 检查点来增强 SSIS Package 流程的重用性...
  10. SilverLight学习笔记--Silverlight中操作DOM元素