【个人笔记】OpenCV4 C++ 快速入门 02课
个人资料,仅供学习使用
修改时间——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课相关推荐
- 【个人笔记】OpenCV4 C++ 快速入门 29课
个人资料,仅供学习使用 修改时间--2022年2月19日 15:02:27 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 29 高斯双边模糊 opencv知识点: 高斯双边模 ...
- 【个人笔记】OpenCV4 C++ 快速入门 26课
个人资料,仅供学习使用 修改时间--2022年2月13日 20:49:07 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 26 直方图均衡化 opencv知识点: 均衡灰度图 ...
- 【个人笔记】OpenCV4 C++ 快速入门 20课
个人资料,仅供学习使用 修改时间--2022年1月24日 22:09:02 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 20 图像翻转 opencv知识点: 图像翻转 - ...
- 【个人笔记】OpenCV4 C++ 快速入门 06课
个人资料,仅供学习使用 修改时间--2022年2月10日 08:46:02 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 06 滚动条操作1.0 - 调整图像亮度 openc ...
- 【个人笔记】OpenCV4 C++ 快速入门 25课
个人资料,仅供学习使用 修改时间--2022年2月13日 20:45:23 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 25 二维直方图 opencv知识点: 计算直方图数 ...
- 【个人笔记】OpenCV4 C++ 快速入门 23课
个人资料,仅供学习使用 修改时间--2022年1月26日 00:49:43 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 23 视频处理与保存 opencv知识点: Vide ...
- 【个人笔记】OpenCV4 C++ 快速入门 22课
个人资料,仅供学习使用 修改时间--2022年1月25日 22:09:17 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 22 视频文件摄像头使用 opencv知识点: VI ...
- 【个人笔记】OpenCV4 C++ 快速入门 19课
个人资料,仅供学习使用 修改时间--2022年1月24日 20:17:13 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 19 图像放缩与插值 opencv知识点: 图像放缩 ...
- 【个人笔记】OpenCV4 C++ 快速入门 17课
个人资料,仅供学习使用 修改时间--2022年1月23日 17:59:14 学习课程:OpenCV4 C++ 快速入门视频30讲 视频老师:贾志刚 17 鼠标操作与响应 opencv知识点: 设置指定 ...
最新文章
- Java程序员必备的Intellij插件
- hadoop3.2.0集群搭建的一些坑!
- [修正] 移动平台曲线不平滑的问题(如:TRectangle, TPath...等)
- Nhibernate与Castle windsor (个人学习笔记1)
- Android Studio 使用Method trace,查看某进程的所有线程trace的方法
- 并查集的介绍和其六种优化(c++)
- Linux 下安装 yum
- vce 题库导入_PDF 题库转VCE 文件.docx
- 混淆矩阵 matlab代码示例
- 前缀列表ip prefix-list
- MacBook蓝牙鼠标 自动断开问题
- 《人性的弱点全集》- [美]戴尔·卡耐基/著
- 《深入浅出SpringCloud》SpringCloud整体架构概览
- 2019 HZNU Winter Training Day 14 Comprehensive Training
- jQuery实现悬浮窗口
- DDN - Digital Data Network
- 组合、聚合、继承详解
- php redis 唯一id,PHP + Redis 实现一个简单的twitter
- 计算机屏幕怎么拆,aoc显示器怎么拆解?拿掉器的拆解方法!
- 如何用 Python 找出某月的第一天
热门文章
- 笔记︱范数正则化L0、L1、L2-岭回归Lasso回归(稀疏与特征工程)
- [机器学习]推荐系统介绍
- mven2 + androMDA 初探
- Ant Desing Pro2.0(一)项目初始化
- Android API级别、代号、发布时间及平台亮点整理
- spring boot 1.5.4 整合webService(十五)
- 【算法导论】简单哈希表的除法实现
- cvc-complex-type.2.3: Element 'beans' cannot have character [children]
- 微软BI 之SSIS 系列 - 通过设置 CheckPoints 检查点来增强 SSIS Package 流程的重用性...
- SilverLight学习笔记--Silverlight中操作DOM元素