OpenCV 学习笔记-day2(色彩空间转换函数cvtColar()实现,与IMwrite图像保存函数IMwrite())

day2-色彩空间转换函数cvtColar()实现,与图像保存函数IMwrite

知识补充:三种常见色彩空间——RGB、GRAY、HSV颜色识别(详情点击链接)

函数:

  1. cvtColor() 颜色空间转换函数

void cvtColor( InputArray src, OutputArray dst, int code, int dstCn = 0 );
可以实现RGB颜色向HSV,HSI等颜色空间转换。也可以转换为灰度图。

参数说明
src输入图像,即要进行颜色空间变换的原图像,可以是Mat类
dst输出图像,即进行颜色空间变换后存储图像,也可以Mat类
code转换的代码或标识,即在此确定将什么制式的图片转换成什么制式的图片
dstCn默认为0,目标图像通道数,如果取值为0,则由src和code决定

例1

cvtColor(image, hsv, COLOR_BGR2HSV);//Mat image, hsv;RGB转HSV
cvtColor(image, gray, COLOR_BGR2GRAY);//HSV转Gray灰度
  1. imwrite() 保存图像

bool imwrite( const String& filename, InputArray img,const std::vector& params = std::vector());

参数说明
filename文件名(要保存的位置,注意:你要保存图片为哪种格式,就带什么后缀)
img要保存的图像
params表示为特定格式保存的参数编码 其中JPEG:表示图像的质量(取值 0-100);PNG:表示压缩级别(取值 0-9);PPM,PGM,PBM:表示文件以二进制还是纯文本方式存储 取值 0或 1

例2

imwrite("...\\HSV\\1.png",hsv);//Mat hsv imwrite图像保存 
// 将hsv保存到...\\HSV\\1.png路径 保存格式为png

代码:

quickopencv.h

#pragma once

#include <opencv2\highgui.hpp>

#include <opencv2\imgproc.hpp>

using namespace cv;
//定义类
class QuickDemo{
public:
	void colorSpace_Demo(Mat &image);//色彩空间转换函数2021-12-24
};

QuickDemo.cpp

#include <opencv2\highgui.hpp>

#include <opencv2\imgproc.hpp>

#include<quickopencv.h>

#include <iostream>

void QuickDemo::colorSpace_Demo(Mat &image)
{
	//cvtColor 色彩空间转换函数
	Mat gray, hsv;//灰度 hsv色彩空间
	cvtColor(image, hsv, COLOR_BGR2HSV);//HSV颜色空间:H S V 三个通道, H:颜色0-180 ,S:颜色0-255 ,V:亮度 0-255
	cvtColor(image, gray, COLOR_BGR2GRAY);//cvtColor色彩空间转换函数
	imshow("HSV", hsv);
	imshow("gray",gray);
	imwrite("...\\HSV\\1.png",hsv);//imwrite图像保存
	imwrite("...\\gray\\1.png",gray);
}

OpencvTest.cpp

#include <iostream>
#include <opencv2\highgui.hpp>
#include <opencv2\imgproc.hpp>
#include <quickopencv.h>

using namespace cv;
using namespace std;

int main()
{
	Mat scr = imread("...\\image\\1.jpg");//打开一张图
	if (!scr.data == 1)//判空
		return -1;
	namedWindow("窗口1", WINDOW_NORMAL);//创建 WINDOW_FREERATIO窗口
	imshow("窗口1",scr);//在创建的窗口显示原图像
	QuickDemo qd;
	qd.colorSpace_Demo(scr);//色彩转换 转换成灰度图像和
	waitKey(0);
	return 0;
}

RGB原始图像
在这里插入图片描述
HSV图像
在这里插入图片描述

Gray灰度图像
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值