OpenCV2:第一章 图像表示
一.简介
在OpenCV中,可以用C++语法的Mat类来表示一张图像
也可以用C语法的lpllmage或CvMat结构体来表示一张图像
1.单通道像素值
2.多通道像素值
OpenCV默认颜色顺序为BGR
二.Mat类
cv::Mat类能够自动管理内存,由矩阵头和指向存储所有像素值的矩阵的指针构成
cv::Mat类表示一个n维的密集数值单通道或多通道数组,它可用于存储实数或复数值的向量和矩阵 灰度和彩色图像 体素 向量场 点云 张量 直方图等
1.成员数据
class CV_EXPORTS Mat { public: // 标志位 int flags; // 矩阵的维数,应该大于等于2 int dims; // 矩阵的行数和列数,如果维度大于2,则都为-1 int rows,cols; // 指向数据的指针 uchar* data; // 指向引用计数的指针 int* refcount; uchar* datastart; uchar* dataend; uchar* datalimit; MatAllocator* allocator; MSize size; MStep step; };
2.构造函数
Mat() // 默认构造函数
Mat(int row,int cols,int type)
Mat(Size size,int type)
Mat(int rows,int cols,int type,const Scalar& s)
Mat(Size size,int type,const Scalar& s)
Mat(int ndims,const int* sizes,int type)
Mat(int ndims,const int* sizes,int type,const Scalar& s)
Mat(const Mat& m) // 拷贝构造函数
Mat(int rows,int cols,int type,void* data,size_t step=AUTO_STEP)
Mat(Size size,int type,void* data,size_t step=AUTO_SETP)
Mat(int ndims,const int* sizes,int type,void* data,const size_t* steps=0)
Mat(const Mat& m,const Range& rowRange,const Range& colRange=Range::all());
Mat(const Mat& m,const Rect& roi);
Mat(const Mat& m,const Range* ranges);
Mat(const CvMat* m,bool copyData=false);
Mat(const CvMatND* m,bool copyData=false);
Mat(const IplImage* img,bool copyData=false);
- rows,cols
分别表示行,列
- type
表示图像类型 CV_8UC1 CV_16SC1 CV_64FC3
3.模板构造函数
template<typename _Tp>explicit Mat(const vector<_Tp>& vec,bool copyData=false);
template<typename _Tp,int n>explicit Mat(const Vec<_Tp,n>& vec,bool copyData=true);
template<typename _tp,>
4.成员函数
Mat::row // 创建一个具有指定了矩阵头中行数的参数的矩阵
Mat::col // 创建一个具有指定了矩阵头中列数的参数的矩阵
Mat::rowRange // 为指定的行span创建一个新的矩阵头,可取指定行区间元素
Mat::colRange // 为指定的列span创建一个心得矩阵头,可取指定列区间元素
Mat::clone // 创建一个数据及其基础数据的完整副本
Mat::copyTo //
Mat::convertTo
Mat::zeros
Mat::ones
Mat::channels
Mat::empty
Mat::atMat::isContinuous() //判断图像存储是否连续
三.lpllmage/CvMat结构体
1.IpIImage/CvMat和Mat相互转换
OpenCV2:第一章 图像表示的更多相关文章
- OpenCV2:第九章 图像比较
一.简介 图像相似度主要是对两幅图像内容的相似程度进行打分,根据分数的高低来判断图像内容的相似程度. 常见的图像比较有两种方法:峰值信噪比PSNR和结构相似性SSIM 二.峰值信噪比PSNR(Peak ...
- PRML读书会第一章 Introduction(机器学习基本概念、学习理论、模型选择、维灾等)
主讲人 常象宇 大家好,我是likrain,本来我和网神说的是我可以作为机动,大家不想讲哪里我可以试试,结果大家不想讲第一章.估计都是大神觉得第一章比较简单,所以就由我来吧.我的背景是统计与数学,稍懂 ...
- WEBGL 2D游戏引擎研发系列 第一章 <新的开始>
WEBGL 2D游戏引擎研发系列 第一章 <新的开始> ~\(≥▽≤)/~HTML5游戏开发者社区(群号:326492427) 转载请注明出处:http://html5gamedev.or ...
- Cocos2d-x 3.0 红孩儿私人义务教育 - 第一章 熟人Cocos2d-x 3.0project
Cocos2d-x 3.0 红孩儿私家必修 前言: 时光飞逝,每每看到博客上的回复和微博上的鼓舞,总会认为亏欠大家点什么.停下来太久.总是认为不太对劲,哈哈,时习之吧,望以此勉励大家. 红孩儿C ...
- Cracking the Coding Interview 第一章
第一章:数组与字符串 1 数组与字符串 请实现一个算法,确定一个字符串的所有字符是否全都不同.这里我们要求不允许使用额外的存储结构. 给定一个string iniString,请返回一个bool值,T ...
- TeeChart For VCL/FMX V2017使用教程:第一章-准备开始
https://blog.csdn.net/vbfgm/article/details/79338775 第一章 准备开始-构建图表和填充数据序列 1.1 简介 通过代码或Dataset(数据集)访问 ...
- 第一章:CDib类库的建立
VC++图像处理程序设计(第1版) 杨淑莹 编著 边奠英 主审 第一章 位图基础 Joanna-In-Hdu&Hust 手工打,印象更深刻 使用工具 VS2010 mfc 整本 ...
- OpenGL笔记<第一章> 构建 GLSL class
恭喜,我们终于很扎实地完成了第一章——glsl 入门 不幸的是,it's not the basic of GLSL shader ,我们下一节开篇,basic of GLSL shader 在下一章 ...
- MySQL----MySQL数据库入门----第一章 数据库入门
第一章 数据库入门 1.1 数据库基础知识 1.1.1 数据库概述 数据不仅包括普通意义上的数字,还包括文字.图像.声音等.也就是说,凡是在计算机中用来描述事物的记录都可称作数据. 数据库的基本特点: ...
随机推荐
- apache日志信息详解
一.访问日志的格式 Apache内建了记录服务器活动的功能,这就是它的日志功能.下文详细介绍Apache的访问日志.错误日志.以及如何分析日志数据,如何定制Apache日志,如何从日志数据生成统计报 ...
- App Stroe. 兼容性文案过长
被XCode10坑的头大,和大佬沟通发版到底要不要牺iOS9.2以下用户的时候被大佬一句为什么我们的兼容性这一栏这么长?!!如图: ⏬⏬⏬⏬⏬⏬⏬⏬⏬ 我们家App: b.jpeg
- Objective-C中的字符串格式化输出(转载)
转自:http://www.cnblogs.com/jackbutler/archive/2012/04/05/2432828.html %@ 对象 %d, %i 整数 %u 无符整形 %f 浮点/双 ...
- Codeforces Round #421 (Div. 2)D - Mister B and PR Shifts(模拟)
传送门 题意 给出n个数,计算在进行n-1次右移中\(min\sum_{i=1}^nabs(p_i-i)\) 分析 我们设置cnt[p[i]-i]为一个数p[i]与它标准位置(如1的标准位置为1)的左 ...
- python界面工具pyqt基础教程
这里有一份很详细的中文翻译供我们学习pyqt,很适合初学者和中级学者,直接丢传送门,不多说 http://www.qaulau.com/books/PyQt4_Tutorial/introductio ...
- Python实现决策树ID3算法
主要思想: 0.训练集格式:特征1,特征2,...特征n,类别 1.采用Python自带的数据结构字典递归的表示数据 2.ID3计算的信息增益是指类别的信息增益,因此每次都是计算类别的熵 3.ID3每 ...
- ionic back 返回按钮不正常显示&&二级路由点击返回按钮失效无法返回到上一级页面的问题
很多时候,app不只有一两级路由,还要三四级路由,但是在ionic中,给出的返回键三级或四级无法使用,所以得自定义方法设置返回. 直接贴代码: <ion-nav-buttons side=&qu ...
- Mysql框架---HMySql
Java 数据库框架 在我学习java数据库框架的时候,第一个用的是Hibernate,但是到现在,我可能已经快忘记它了,毕竟快两年没有碰的东西,后来一直再用MyBatis.因为它简单. 但是本文不会 ...
- re正则表达式公式讲解6
标识符 re.I (re.IGNORECASE) 忽略大小写 import re s = "Max@123uyt146" print(re.search("m" ...
- canvas画饼图
<style> body { background: black; text-align: center; } #cans { background: white; } ...