openCV基础知识操作实例

在OpenCV中最核心的类是Mat,它是Matrix的缩写,代表矩阵或者数组的意思,该 类的声明在头文件opencv2\core\core.hpp中,所以使用Mat类时要引入该头文件。构造Mat 对象相当于构造了一个矩阵(数组),需要四个基本要素:行数(高)、列数(宽)、 通道数及其数据类型,所以Mat类的构造函数如下:
其中,rows代表矩阵的行数,cols代表矩阵的列数,type代表类型,包括通道数及其 数据类型,可以设置为CV_8UC(n)、CV_8SC(n)、CV_16SC(n)、 CV_16UC(n)、CV_32SC(n)、CV_32FC(n)、CV_64FC(n),其中8U、8S、 16S、16U、32S、32F、64F前面的数字代表Mat中每一个数值所占的bit数,而 1byte=8bit,所以,32F就是占4字节的float类型,64F是占8字节的doule类型,32S是占4字 节的int类型,8U是占1字节的uchar类型,其他的类似;C(n)代表通道数,当n=1时, 即构造单通道矩阵或称二维矩阵,当n>1时,即构造多通道矩阵即三维矩阵,直观上 就是n个二维矩阵组成的三维矩阵。这里所说的单通道矩阵和二维ndarray是等价的,而 多通道矩阵和三维ndarray是等价的。对于Mat构造函数也可以采用以下形式:
其中使用了OpenCV的Size类,该类一般用来存储矩阵的列数和行数。需要注意的 是,Size的第一个元素是矩阵的列数(宽),第二个元素是矩阵的行数(高),即先存 宽,再存高,与ndarray的shape相反。
在这里插入图片描述

#include <iostream>

#include <opencv2/core/core.hpp>//包含openCV的基本数据结构,数组操作的基本函数

#include <opencv2/highgui/highgui.hpp>//图像的交互界面,视频的捕捉也可写为#include <opencv2/highgui.hpp>

#include <opencv2/imgcodecs.hpp>//图像的变换,滤波直方图,以及形状的描述等函数库

using namespace std;

using namespace cv;

int main(char argc, char* argv[])

{
	//构造矩阵
	Mat m = (Mat_<int>(3, 2) << 11, 12, 33, 43, 53, 63);
	//矩阵的行数
	cout << "行数:" << m.rows << endl;
	//矩阵的列数
	cout << "列数:" << m.cols << endl;
	Size size = m.size();
	cout << "尺寸" << size << endl; //使用成员函数size()获取矩阵的尺寸
		//除以上可以单独获得Mat的行数和列数外,还可以通过成员函数size()直接得到矩 阵尺寸的Size对象,
	cout << "通道数:" << m.channels() << endl;
	cout << "面积:" << m.total() << endl;
	cout << "维数:" << m.dims << endl;
	cout << "输出数值" << endl;
	for (int r = 0; r < m.rows; r++)
	{
		for (int c = 0; c < m.cols; c++)
		{
			cout << m.at<int>(r, c) << ",";//第r行,第c列
		}
		cout << endl;
	}
	cout << endl;
	return 0;


**![在这里插入图片描述](https://img-blog.csdnimg.cn/20200105141713515.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NDIxMjA2NQ==,size_16,color_FFFFFF,t_70)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值