【Opencv&Cpp】02 第一次处理图片:图像色彩空间转换、保存

2023-05-16

    cvtColor-色彩空间进行转换

    imwrite-图片保存

opencv 提供了cvtColor()函数,用于在图像中不同的色彩空间进行转换,用于后续处理。在使用cvtColor之前首先需要了解下基本的图像色彩模式,色彩模式决定了打印或显示的图片颜色。

CV_<bit_depth>(S|U|F)C<number_of_channels>

  1. 1--bit_depth---比特数---代表8bite,16bites,32bites,64bites---举个例子吧--比如说,如

  2. 如果你现在创建了一个存储--灰度图片的Mat对象,这个图像的大小为宽100,高100,那么,现在这张

  3. 灰度图片中有10000个像素点,它每一个像素点在内存空间所占的空间大小是8bite,8位--所以它对

  4. 应的就是CV_8

  5. 2--S|U|F--S--代表---signed int---有符号整形

  6. U--代表--unsigned int--无符号整形

  7. F--代表--float---------单精度浮点型

  8. 3--C<number_of_channels>----代表---一张图片的通道数,比如:

  9. 1--灰度图片--grayImg---是--单通道图像

  10. 2--RGB彩色图像---------是--3通道图像

  11. 3--带Alph通道的RGB图像--是--4通道图像

定义一个头文件:(以后还有很多function、可以全放此类中)

class QuickDemo {
public:
	void colorSpace_Demo(Mat& image);  //色彩空间转换
}

调用函数如下:

void QuickDemo::colorSpace_Demo(Mat& image) {

	Mat gray, hsv; //定义两个Mat

	cvtColor(image, hsv, COLOR_BGR2HSV);  //HSV	
	cvtColor(image, gray, COLOR_BGR2GRAY);  //GRAY
  
	imshow("HSV", hsv);
	imshow("灰度", gray);

	//保存
	imwrite("E:/opencv452/in_img/hsv.png", hsv);
	imwrite("E:/opencv452/in_img/gray.png", gray);
}

MAIN

Mat src = imread("E:/opencv452/img/1.jpg");

	QuickDemo demo;  //定义类函数
	
	demo.colorSpace_Demo(src);	//调用public类里的colorSpace_Demo函数



	waitKey();  //延时函数
	destroyAllWindows();  //关闭窗口:关闭窗口、取消分配任何相关的内存使用
	return 0;

运行

 保存成功

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Opencv&Cpp】02 第一次处理图片:图像色彩空间转换、保存 的相关文章

  • inet_addr 和inet_ntoa函数作用

    我们使用socket进行通信的时候 xff0c 我们需要指定三个元素 xff1a 通信域 xff08 地址族 xff09 IP地址 端口号 xff0c 这三个元素由SOCKADDR IN结构体定义 xff0c 为了简化编程一般将IP地址设置
  • 使用C语言完成单片机的底层配置操作

    整体概貌 单片机型号 xff1a C8051F020 技术等级 xff1a 不懂底层编程的菜鸟 写作目的 xff1a 加深对底层的了解 xff0c 方便下一步对FPGA底层配置的实现 编写内容 xff1a 1 定时器的定时 2 串口波特率的
  • windows7触屏操作API

    每当用户触摸触敏式 Windows 7 设备时 xff0c Windows 7 多点触控平台都会向您的应用程序发送手势消息 WM GESTURE 这是现成的免费行为 xff0c 如果您希望停止接收此类消息 xff0c 则需要选择退出 手势被
  • visual studio中头文件和库文件路径设置

    在程序开发中 xff0c 很多时候需要用到别人开发的工具包 xff0c 如OpenCV和itk 一般而言 xff0c 在vs中 xff0c 很少使用源文件 xff0c 大部分是使用对类进行声明的头文件和封装了类的链接库 xff08 静态li
  • LNK2001: 无法解析的外部符号的几种情况

    一般来说 xff0c 我们引用第三方库时 xff0c 需要进行指定依赖项配置 xff0c 若没有进行相关配置 xff0c 则编译器会出现 LNK2001 无法解析的外部符号 错误 这个是最常见的问题 xff0c 具体步骤 xff1a 项目
  • C++11向线程函数传递参数

    template span class token operator lt span class Function span class token punctuation span class span class token punct
  • C++11之std::future对象使用说明

    std future介绍 在前面几篇文章中基本都用到thread对象 xff0c 它是C 43 43 11中提供异步创建多线程的工具 但是我们想要从线程中返回异步任务结果 xff0c 一般需要依靠全局变量 xff1b 从安全角度看 xff0
  • delete 和 delete[]真正区别

    我们通常从教科书上看到这样的说明 xff1a delete 释放new分配的单个对象指针指向的内存 delete 释放new分配的对象数组指针指向的内存 那么 xff0c 按照教科书的理解 xff0c 我们看下下面的代码 xff1a spa
  • 【转】使用Android MediaCodec 硬解码延时问题分析

    最近做项目用到Android native层的MediaCodec的接口对H264进行解码 xff0c 通过在解码前和解码后加打印日志 xff0c 发现解码耗时200多ms xff0c 和IOS的解码耗时10ms相比实在是延时好大 后来研究
  • 数据异常检测

    数据下载 xff1a 链接 xff1a https pan baidu com s 1ePMpmTBeoECBFFgPZQrPAg 提取码 xff1a qkg2 两维数据异常检测 xff08 使用高斯原始模型 xff09 代码 span c
  • 数据通信保镖---链路聚合

    目录 前言 一 链路聚合技术产生背景 二 链路聚合基本原理 三 链路聚合手工模式 四 LACPDU 五 活动接口及链路选举步骤 六 负载分担 七 负载分担模式 八 配置命令 1 创建链路聚合组 前言 随着社会迅速的发展 xff0c 网络业务
  • BGP基础讲解

    文章目录 一 BGP起源二 BGG基本概念与注意事项三 BGP原理概述四 BGP路由条目的来源 宣告 引入 聚合五 通告原则 重要 xff01 xff01 xff01 六 相关配置命令 一 BGP起源 网络不断扩大 xff0c 为了方便管理
  • LNK1107 文件无效或损坏: 无法在 0xBE2 处读取

    LNK1107 文件无效或损坏 无法在 0xBE2 处读取 LNK1107 文件无效或损坏 无法在 0xBE2 处读取 4 15test D ITK res lib libhdf5 settings 1 的问题解决 解决 解决办法 xff1
  • Linux开机卡在/dev/sda1:clean,***files,***blocks解决方案

    Linux开机卡在 dev sda1 xff1a clean xff0c files blocks解决方案
  • 未能初始化 成员 “itk::ImageIOBase::UNKNOWNPIXELTYPE“

    如题 xff0c 在联合VTK ITK Qt编译的时候遇到了 xff0c 原因 xff1a 没有在CMakeLists txt中加ITK相关代码 xff0c 因为是直接拿别人的工程来用 xff0c 改正 xff1a 添加ITK相关代码 xf
  • 2021-09-17

    https d2lzkl7pfhq30w cloudfront net pub archive epel 6 x86 64 以上是epel的新地址
  • 蓝桥杯2021 砝码称重 动态规划(JAVA)

    题目 你有一架天平和N个砝码 xff0c 这N个砝码重量依次是W1 xff0c W2 xff0c WN 请你计算一共可以称出多少种不同的重量 xff1f 注意砝码可以放在天平两边 输入格式 输入的第一行包含一个整数N 第二行包含N个整数 x
  • SpringBoot连接数据库报空指针异常

    加了 64 SpringBootTest和 64 Test还是报空指针异常 原因 64 Test导入的包不对 原来是 span class token keyword import span span class token namespa
  • 解决80端口被占用问题

    解决80端口被占用问题 1 win 43 r xff0c 输入cmd xff0c 回车 2 命令行输入 netstat ano 3 前几行本地地址为0 0 0 0 80 xff0c 每一行的最后对应一个pid号 xff0c 如下图中的215
  • go 学习中遇到的问题及解决

    Go学习中遇到的若干问题及解决 1 go test进行单元测试时 xff0c 出现undefined方法或者command line arguments build failed 解决方案问题解决参考 2 go操作Mysql2 1 将表名作

随机推荐