OpenCV3 第四章学习笔记-------Mat用法、多种格式化输出方法、常用数据结果、基本绘图操作

目录

一、Mat结构的使用

1、OpenCV简介 

 2、Mat类介绍 —图像容器类&通用矩阵类

3、Mat类对象的七种创建方式

4、OpenCV对矩阵的输出格式

5、OpenCV输出其他常用数据结构

二、常用数据结构和函数

1、点:Point类

2、颜色:Scalar类

3、尺寸的表示:Size类

4、矩形的表示:Rect类

5、颜色空间转换:cvtColor()函数

三、基本图像的绘制

1、绘制常见的线型

2、绘制结果图


一、Mat结构的使用


1、OpenCV简介 

OpenCV是计算机视觉库(图像处理库),主要工作是操作和处理一个包含众多强度值的像素点矩阵。早期的OpenCV基于c接口构建的,那时利用IplImage的C语言结构体在内存中存储图像,要手动管理内存,如果退出前忘记释放内存就会导致内存泄漏,不利于大型程序开发。OpenCV在2.0之后采用了C++接口,利用C++类的概念,轻松实现自动管理内存。                                   

C++接口唯一的不足:当前嵌入式开发系统只支持C语言,所以这种情况下要用c接口的。

 2、Mat类介绍 —图像容器类&通用矩阵类

  • 不必手动为其开辟空间

  • 不必再在不需要时手动将空间释放           

  • Mat是一个类,包括矩阵头(包括矩阵尺寸、存储方法、存储地址等矩阵(存储矩阵所有像素值,可以是不同维数的

  • OpenCV作为图像处理库,内部含有多个图像处理函数,常常在函数之间进行图像传递,而图像传递创建副本时由于矩阵有时很大会造成很大的开销,为了解决这个问题,OpenCV中采用了

  • 计数机制—只复制矩阵头而不复制矩阵

即让每个Mat对象都有自己的矩阵头(信息头),但共享同一个矩阵(让矩阵指针指向同一地址实现),拷贝函数只拷贝矩阵头而不复制矩阵,对任何一个对象的操作都会影响其他对象。因为这种通过拷贝函数生成的多个对象,矩阵是属于多个对象的,当不再需要时,通过最后一个使用他的对象清除。

计数体现在:无论什么时候复制矩阵头,计数器都加一,反之,释放信息头时,计数器减一,当计数器为0时,矩阵就被清除。

  • 函数clone()和copyTo()实现复制矩阵

3、Mat类对象的七种创建方式

#include "stdafx.h"
#include<iostream>
#include<windows.h>
using namespace std;
// 以下四句话作为OpenCV的标配
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<opencv2/opencv.hpp>
using namespace cv;	//OpenCV中的C++类和函数都是定义在cv的命名空间


int main()
{
    // 三、创建Mat对象的其中方式
	// 3.1 使用Mat()构造函数:Mat M(行, 列, CV_[位数][带符号与否][类型前缀]C[通道数], 
    // Scalar(初始值列表));
    //2*2,每个像素灰度值用8位无符号char型表示(0~255),
    //每个像素是由三个元素组成的三通道。初始值为(0,3,255)
	Mat M(2, 2, CV_8UC3, Scalar(0, 3, 255));  
	cout << "M=" << endl << "" << M << endl << endl;//<<运算符只对二维的有效
	

	// 3.2 C/C++中通过构造函数进行初始化
	int sz[3] = { 2,2,2 };
	Mat L(3, sz,CV_8UC3, Scalar::all(0));	//imshow("L", L);显示错误

	/* // 3.3 为已存在的IplImage指针创建信息头
	/IplImage* img = cvLoad
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值