C++实战Opencv第二天——色彩空间转换函数和opencv中图像对象创建与赋值(从零开始,保姆教学)

这篇具有很好参考价值的文章主要介绍了C++实战Opencv第二天——色彩空间转换函数和opencv中图像对象创建与赋值(从零开始,保姆教学)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

OpenCV是一个强大的计算机视觉库,使用C++作为主要编程语言,对于图像处理和计算机视觉领域具有重要意义。其提供了丰富的功能和算法,使得开发者能够快速实现各种图像处理和计算机视觉应用。OpenCV C++为图像处理和计算机视觉领域的开发者提供了一个高效、稳定的工具。通过OpenCV的函数库和模块,可以方便地进行图像读取、保存、调整大小、滤波、边缘检测等常见的图像处理操作。而且,OpenCV还支持各种图像格式,包括JPEG、PNG、BMP等,使得开发者能够处理不同类型的图像数据。OpenCV C++提供了丰富的计算机视觉算法,如特征提取、目标检测、人脸识别、光流估计等。这些算法可以帮助开发者解决实际问题,比如在智能交通系统中进行车辆检测与跟踪,或者在安防系统中进行行人识别与监控。同时,OpenCV还提供了机器学习和深度学习的支持,使得开发者能够应用各种机器学习算法和深度神经网络模型进行图像分类、目标识别和场景理解等。OpenCV C++具有跨平台的特性,可以在不同操作系统(如Windows、Linux、macOS)上进行开发和部署。这为开发者提供了更大的灵活性,使得他们能够针对不同的应用场景选择合适的平台。OpenCV C++具有较高的性能和可扩展性。它使用了优化的C++代码和多线程技术,能够在处理大规模图像数据时保持高效率。同时,OpenCV C++还支持GPU加速,通过利用图形处理器的并行计算能力,加速图像处理和计算机视觉算法的执行速度。

综上所述,OpenCV C++为开发者提供了丰富的功能和算法,使得他们能够快速构建各种图像处理和计算机视觉应用。无论是在科学研究、工业应用还是个人项目中,OpenCV C++都发挥着不可替代的作用,推动着图像处理和计算机视觉的发展。

一、色彩空间转换函数与图像保存

1.色彩空间转换函数- cvtColor

COLOR_BGR2GRAY = 6 彩色到灰度

COLOR_GRAY2BGR = 8 灰度到彩色

COLOR_BGR2HSV = 40 BGR到HSV

COLOR_HSV2BGR = 54 HSV到BGR

2.图像保存- imwrite

第一个参数是图像保存路径

第二个参数似乎图像内存对象

配置属性表:

属性管理器->新建项目属性表

C++实战Opencv第二天——色彩空间转换函数和opencv中图像对象创建与赋值(从零开始,保姆教学),C++实战Opencv,c++,opencv,开发语言

C++实战Opencv第二天——色彩空间转换函数和opencv中图像对象创建与赋值(从零开始,保姆教学),C++实战Opencv,c++,opencv,开发语言

C++实战Opencv第二天——色彩空间转换函数和opencv中图像对象创建与赋值(从零开始,保姆教学),C++实战Opencv,c++,opencv,开发语言 

建立opencv属性表。建立后,双击打开,然后配置包含目录 ,配置库目录,配置链接器,配置过程如第一天。

C++实战Opencv第一天——win11下配置vs,opencv环境和运行第一个c++代码(从零开始,保姆教学)_win11 opencv测试-CSDN博客

以后新建项目,就可以直接添加opencv属性表,不用再配置了。 

完整代码:

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("D:/workspaces/图片/bus.jpg");
	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>

void Quickdemo::colorSpace_Demo(Mat& image) {
	Mat gray, hsv;
	cvtColor(image, hsv, COLOR_BGR2HSV);
	cvtColor(image, gray, COLOR_BGR2GRAY);
	imshow("HSV", hsv);
	imshow("灰度", gray);
	imwrite("D:/workspaces/图片/hsv.jpg",hsv);
	imwrite("D:/workspaces/图片/gray.jpg",gray);

}

quickopecv.h:

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

using namespace cv;

class Quickdemo {
    public:
	    void colorSpace_Demo(Mat& image);
};

C++实战Opencv第二天——色彩空间转换函数和opencv中图像对象创建与赋值(从零开始,保姆教学),C++实战Opencv,c++,opencv,开发语言

C++实战Opencv第二天——色彩空间转换函数和opencv中图像对象创建与赋值(从零开始,保姆教学),C++实战Opencv,c++,opencv,开发语言 

 二、opencv中图像对象创建与赋值

1.c++中mat对象与创建

2.python中numpy数据对象

C++实战Opencv第二天——色彩空间转换函数和opencv中图像对象创建与赋值(从零开始,保姆教学),C++实战Opencv,c++,opencv,开发语言

Mat赋值时, 只是修改指针,还是这个数据,只有克隆时,才会产生新的数据。

C++实战Opencv第二天——色彩空间转换函数和opencv中图像对象创建与赋值(从零开始,保姆教学),C++实战Opencv,c++,opencv,开发语言

 main.py:

#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:/workspaces/图片/bus.jpg");
	if (src.empty()) {
		printf("could not load image....\n");
		return -1;
	}
	namedWindow("输入窗口", WINDOW_FREERATIO);
	imshow("输入窗口", src);
	Quickdemo qd;
	//qd.colorSpace_Demo(src);
	qd.mat_creation_demo(src);

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

 quickdemo.cpp:

#include<quickopencv.h>

void Quickdemo::colorSpace_Demo(Mat& image) {
	Mat gray, hsv;
	cvtColor(image, hsv, COLOR_BGR2HSV);
	cvtColor(image, gray, COLOR_BGR2GRAY);
	imshow("HSV", hsv);
	imshow("灰度", gray);
	imwrite("D:/workspaces/图片/hsv.jpg",hsv);
	imwrite("D:/workspaces/图片/gray.jpg",gray);

}

void Quickdemo::mat_creation_demo(Mat& image)
{
	Mat m1, m2;
	m1 = image.clone();
	image.copyTo(m2);

	//创建空白图像 8UC1:8位,UC无符号的,1单通道的
	Mat m3 = Mat::zeros(Size(8, 8), CV_8UC1);
	std::cout << m3 << std::endl;
}

quickopencv.h:

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

using namespace cv;

class Quickdemo {
    public:
	    void colorSpace_Demo(Mat& image);
		void mat_creation_demo(Mat& image);
};

C++实战Opencv第二天——色彩空间转换函数和opencv中图像对象创建与赋值(从零开始,保姆教学),C++实战Opencv,c++,opencv,开发语言 文章来源地址https://www.toymoban.com/news/detail-829095.html

到了这里,关于C++实战Opencv第二天——色彩空间转换函数和opencv中图像对象创建与赋值(从零开始,保姆教学)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 我在Vscode学OpenCV 色彩空间转换

    即是颜色,一种人体视觉系统对光的反射的 不同波长 的感知的结果。人们又对不同的波长范围的电磁波定义可视光的“颜色”。 在日常生活、美术课中,通过把(红黄蓝)三种颜色成为”认为是能够混合得到其他所有颜色的颜料。 而对于光学,就把(红绿蓝 RGB )三基色【

    2024年02月05日
    浏览(44)
  • C++opencv 色彩空间转换和保存

    1.imwrite()函数       用于输出图像到文件 imwrite()格式: bool imwrite(const string filename, InputArray img, const vectorint params=vectorint()) 参数说明: 第一个参数:const string类型的filename,指写入的文件名。需要带上后缀,如“123.jpg”。 第二个参数:InputArray类型的img,一个mat类型的图像数

    2024年02月08日
    浏览(44)
  • OpenCV 4基础篇| 色彩空间类型转换

    RGB 图像是一种比较常见的色彩空间类型,除此之外,比较常见的还有以下类型: GRAY 色彩空间(即灰度图像) 、 XYZ 色彩空间 、 YCrCb 色彩空间 、 HSV 色彩空间 、 HLS 色彩空间 、 CIELab 色彩空间 、 CIELuv 色彩空间 等,这些不同的色彩空间,是根据不同角度进行定义的,比如从

    2024年02月21日
    浏览(38)
  • OpenCV 中的色彩空间 (C++ / Python)

    在本教程中,我们将了解计算机视觉中使用的流行色彩空间,并将其用于基于颜色的分割。我们还将分享 C++ 和 Python 的演示代码。

    2024年02月12日
    浏览(38)
  • opencv使用applyColorMap()函数,可以将灰度图或彩色图转换成自定义的彩色图,或opencv提供的20多种色彩值

    1、applyColorMap()函数的使用: 使用applyColorMap()函数,可以将灰度图或彩色图转换成自定义的彩色图,或opencv提供的20多种色彩值 (1)函数原型: void applyColorMap(InputArray src, OutputArray dst, int colormap) src:源图像,灰度图或彩色图( CV_8UC1 or CV_8UC3 ); dst:在源图像上进行色彩映射

    2024年02月12日
    浏览(50)
  • OpenCv色彩空间

    目录 一、RGB 二、图像处理入门 三、色彩空间的转换 在表示图像时,有多种不同的颜色模型,但最常见的是红、绿、蓝(RGB) 模型RGB 模型是一种加法颜色模型,其中原色 (在RGB模型中,原色是红色 R、绿色 G 和蓝色 B)混合在一起就可以用来表示广泛的颜色范围。 每个原色(R,G,

    2024年02月16日
    浏览(39)
  • OpenCV 02(色彩空间)

    最常见的 色彩空间 就是RGB, 人眼也是基于RGB的色彩空间去分辨颜色的. OpenCV 默认使用的是BGR . BGR和RGB色彩空间的区别在于图片在色彩通道上的排列顺序不同. 显示图片的时候需要注意适配图片的色彩空间和显示环境的色彩空间.比如传入的图片是BGR色彩空间, 显示环境是RBG空间

    2024年02月09日
    浏览(44)
  • opencv 图像色彩空间转化

    今天看了b站贾志刚的课,觉得不错,特地做学习笔记来和小伙伴分享 贾志刚的这个好像是2.0版本,30小时的,语言更加精炼,适合初级入门学习 第一节是常规安装   看他的步骤装就行了,记得配置完点应用再点确定,我第一次就是 没点然后就失败了,又得重配置一次 第二节就是基

    2024年02月22日
    浏览(46)
  • opencv-18 什么是色彩空间?

    色彩空间类型,也称为颜色空间类型或色彩模型,是一种表示图像中颜色的方式。在计算机图形学和数字图像处理中,有许多种色彩空间类型,每种类型有不同的表达方式和特点。 常见的色彩空间类型包括: RGB (Red, Green, Blue): RGB 是最常见和广泛使用的色彩空间类型。它使

    2024年02月15日
    浏览(39)
  • 【OpenCV • c++】颜色数据结构与颜色空间转换

    🚀 个人简介:CSDN「 博客新星 」TOP 10 , C/C++ 领域新星创作者 💟 作    者: 锡兰_CC ❣️ 📝 专    栏: 【OpenCV • c++】计算机视觉 🌈 若有帮助,还请 关注➕点赞➕收藏 ,不行的话我再努努力💪💪💪

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包