首页 > 其他分享 >图像色彩空间转换

图像色彩空间转换

时间:2023-01-11 15:34:46浏览次数:47  
标签:转换 灰度 图像 using include 色彩

02 图像色彩空间转换

opencv知识点:

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

本课解决的问题:

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

1.准备事项

创建头文件quickopencv.h 以及 源文件 quickdemo.cppmain.cpp

本课程只是为了方便演示,所以采用本种格式。

quickopencv.h

#pragma once
#include<opencv2/opencv.hpp>

using namespace cv;

/*顾名思义:快速的演示。随着课程的推进,里面会有各种demo*/
class QuickDemo {
public:

/*这就是第1个demo,色彩空间转换demo*/
	void colorSpace_Demo(Mat& image);
	/*
	`
	`
	之后写的demo
	·
	·
	*/
};

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

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

色彩空间转换 cvtColor

cvtColor
		色彩空间转换
			共4个参数
				第1个参数 输入
				第2个参数 输出
				第3个参数 色彩空间转换方式
				第4个参数 通道数(不输入,则根据输入自动计算)

图像保存 imwrite

imwrite
		图像保存
			共3个参数
				第1个参数 路径+文件名
				第2个参数 输入
				第3个参数 特定格式编码对(一般用不到)

色彩空间转换有4种常用的方式,本文只演示了两种。

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

main.cpp

#include "opencv2/opencv.hpp"
#include "quickopencv.h"
#include <iostream>

using namespace cv;
using namespace std;

int main(int argc, char** argv) {
	Mat src = imread("C:/Users/LZQ/Desktop/lena.png"); //  B, G, R
	if (src.empty()) {
		printf("could not load image....\n");
		return -1;
	}
	namedWindow("输入窗口", WINDOW_FREERATIO);
	imshow("输入窗口", src);

	QuickDemo qd;
	qd.colorSpace_Demo(src);                    //重点


	waitKey(0);
	destroyAllWindows();
	return 0;
}

quickdemo.cpp

#include "quickopencv.h"
#include <opencv2/dnn.hpp>

using namespace cv;
using namespace std;

void QuickDemo::colorSpace_Demo(Mat& image) {
	Mat gray, hsv;
	cvtColor(image, hsv, COLOR_BGR2HSV);   	// H 0 ~ 180, S, V 
	cvtColor(image, gray, COLOR_BGR2GRAY);  //灰度
	imshow("HSV", hsv);                 //显示HSV图像
	imshow("灰度", gray);               //显示灰度图像
	// imwrite("D:/hsv.png", hsv);     // 保存hsv
	// imwrite("D:/gray.png", gray);   // 保存灰度
}

quickopencv.h

#pragma once
#include <opencv2/opencv.hpp>

using namespace cv;

class QuickDemo {                                   //快速的演示文件 class类
public:
	void colorSpace_Demo(Mat& image);

};

原图:

356ecda6c48f2940a198ad6fb7551c2

灰度:

668ddb7ce7df8753c319ad754315431

HSV:

0b5a9c8c43635fcaa4febb1707dcd6f

标签:转换,灰度,图像,using,include,色彩
From: https://www.cnblogs.com/L707/p/17043899.html

相关文章

  • 数字图像处理笔记
    本文章是对《数字图像处理》书中知识概念、定理、公式的总结知识,并给出了自己的理解,部分涉及具体应用代码,主要是原理解析和算法总结。学习数字图像处理能让我们更深入理解......
  • WPF使用WriteableBitmap更新图像
     <Windowx:Class="WpfApp2.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.c......
  • 数字图像处理笔记
    一,绪论1.1,什么是数字图像处理1.2,数字图像处理的起源1.3,数字图像处理技术应用实例1.4,数字图像处理的基本步骤1.5,图像处理系统的组成二,数字图像基础2.1,视觉感......
  • 02 图像色彩空间转换
    02图像色彩空间转换opencv知识点:色彩空间转换函数-cvtColor()图像保存-imwrite()图像显示-imshow()本课解决的问题:如何对图片进行色彩空间转换?如何保存图像?......
  • 电子设计教程15:三极管电平转换电路设计
      在数字电路的领域,常常把电压简化为电平,来描述逻辑状态。比如TTL电平信号规定,+5V等价于逻辑“1”,也称为高电平,0V等价于逻辑“0”,也就是低电平。数字电路里,只有0和1两个状......
  • AD9144-FMC-EBZ ADI数据转接板四通道数模转换器评估板子模块
    ......
  • JavaScript 图像压缩
    JavaScript可以使用类似于canvas和webworkers来实现图像压缩。使用canvas,可以将图像绘制到canvas上,然后使用canvas提供的toBlob()或toDataURL()方法将其转......
  • java:年号字串-------进制转换
    题目描述小明用字母 A 对应数字 1,B 对应 2,以此类推,用 Z 对应 26。对于 27 以上的数字,小明用两位或更长位的字符串来对应,例如 AA 对应 27,AB 对应 28,AZ......
  • linux 中shell脚本实现将fasta文件中每一条scaffold中的碱基转换为一行
     001、[root@PC1test]#lsa.fa[root@PC1test]#cata.fa##测试fasta文件>chr1AACCCTTGTTCCCCC>chr2CCCTTTTTCCCCCCCCTTTT>chr3TTTTCC......
  • 'A,B,C'字符串转换为列形式
    /*'A,B,C'字符串转换为:ABC*/--【方法一】CREATEFUNCTIONdbo.sf_DS_SplitNVarchar(@strValuesnvarchar(4000))RETURNS@tblStrListTABLE(idintidentity(1,1......