OpenCV基本数据类型

CvPoint

二维坐标系下的点,类型为整型

typedef
struct CvPoint

{

intx;/* X坐标,通常以为基点*/

inty;/* y坐标,通常以为基点*/

}CvPoint;

/* 构造函数*/

inline
CvPoint cvPoint(intx,inty
);

/* 从CvPoint2D32f类型转换得来*/

inline
CvPoint cvPointFrom32f(CvPoint2D32fpoint)

CvPoint2D32f

二维坐标下的点,类型为浮点

typedef
struct CvPoint2D32f

{

floatx;/* X坐标,通常以为基点*/

floaty;/* Y坐标,通常以为基点*/

}CvPoint2D32f;

/* 构造函数*/

inline
CvPoint2D32f cvPoint2D32f(doublex,doubley
);

/* 从CvPoint转换来*/

inline
CvPoint2D32f cvPointTo32f(CvPointpoint);

CvPoint3D32f

三维坐标下的点,类型为浮点

typedef
struct CvPoint3D32f

{

floatx;/* x-坐标,通常基于*/

floaty;/* y-坐标,通常基于*/

floatz;/* z-坐标,通常基于*/

}

CvPoint3D32f;

/* 构造函数*/

inline
CvPoint3D32f cvPoint3D32f(doublex,doubley,doublez
);

CvSize

矩形框大小,以像素为精度

typedef
struct CvSize

{

intwidth;/*矩形宽*/

intheight;/*矩形高*/

}

CvSize;

/* 构造函数*/

inline
CvSize cvSize(intwidth,intheight
);

CvSize2D32f

以亚像素精度标量矩形框大小

typedef
struct CvSize2D32f

{

floatwidth;/*矩形宽*/

floatheight;/*矩形高*/

}

CvSize2D32f;

/* 构造函数*/

inline
CvSize2D32f cvSize2D32f(doublewidth,doubleheight
);

{

CvSize2D32fs;

s.width=(float)width;

s.height=(float)height;

returns;

}

CvRect

矩形框的偏移和大小

typedef
struct CvRect

{

intx;/*方形的最左角的x-坐标*/

inty;/*方形的最上或者最下角的y-坐标*/

intwidth;/*宽*/

intheight;/*高*/

}

CvRect;

/* 构造函数*/

inline
CvRect cvRect(intx,inty,intwidth,intheight
);

CvMat

多通道矩阵

typedef
struct CvMat

{

inttype;/* CvMat标识(CV_MAT_MAGIC_VAL),元素类型和标记*/

intstep;/*以字节为单位的行数据长度*/

int*refcount;/*
数据引用计数*/

union

{

uchar*ptr;

short*s;

int*i;

float*fl;

double*db;

}data;/* data指针*/

#ifdef
__cplusplus

union

{

introws;

intheight;

};

union

{

intcols;

intwidth;

};

#else

introws;/*行数*/

intcols;/*列数*/

#endif

}
CvMat;

IplImage

IPL
图像头

typedef
struct _IplImage

{

intnSize;/* IplImage大小*/

intID;/*版本(=0)*/

intnChannels;/*大多数OPENCV函数支持,2,3或4个通道*/

intalphaChannel;/*被OpenCV忽略*/

intdepth;/*像素的位深度: IPL_DEPTH_8U, IPL_DEPTH_8S,IPL_DEPTH_16U, 
IPL_DEPTH_16S,IPL_DEPTH_32S, IPL_DEPTH_32F and IPL_DEPTH_64F可支持*/

charcolorModel[4];/*被OpenCV忽略*/

charchannelSeq[4];/*同上*/

intdataOrder;/* 0 -交叉存取颜色通道, 1 -分开的颜色通道,cvCreateImage只能创建交叉存取图像*/

intorigin;/* 0 -顶—左结构,

1 - 底—左结构(Windows bitmaps风格)
*/

intalign;/*图像行排列(4 or 8). OpenCV忽略它,使用widthStep代替*/

intwidth;/*图像宽像素数*/

intheight;/*图像高像素数*/

struct_IplROI*roi;/*图像感兴趣区域.当该值非空只对该区域进行处理*/

struct_IplImage*maskROI;/*在OpenCV中必须置NULL
*/

void*imageId;/*同上*/

struct_IplTileInfo*tileInfo;/*同上*/

intimageSize;/*图像数据大小(在交叉存取格式下imageSize=image->height*image->widthStep),单位字节*/

char*imageData;/*指向排列的图像数据*/

intwidthStep;/*排列的图像行大小,以字节为单位*/

intBorderMode[4];/*边际结束模式,被OpenCV忽略*/

intBorderConst[4];/*同上*/

char*imageDataOrigin;/*指针指向一个不同的图像数据结构(不是必须排列的),是为了纠正图像内存分配准备的*/

}

IplImage;

时间: 2024-11-01 21:24:12

OpenCV基本数据类型的相关文章

OpenCV Mat数据类型及位数总结(转载)

OpenCV Mat数据类型及位数总结(转载) 前言 opencv中很多数据结构为了达到內存使用的最优化,通常都会用它最小上限的空间来分配变量,有的数据结构也会因为图像文件格式的关系而给予适当的变量,因此需要知道它们声明的空间大小来配置适当的变量.一 般标准的图片,为RGB格式它们的大小为8bits格式,范围为0~255,对一个int空间的类型来说实在是太小,整整浪费了24bits的空间,假设有个640*480的BMP文件空间存储內存,那整整浪费了640*480*3*(32-8)bits的內存空

OpenCV——像素数据类型总结<摘>

1.Unsigned 8bits(一般的图像文件格式使用的大小)IplImage数据结构参数:IPL_DEPTH_8UCvMat数据结构参数:CV_8UC1,CV_8UC2,CV_8UC3,CV_8UC4 变量类型 空间大小 范围 其他 uchar 8bits 0~255 (OpenCV缺省变量,同等unsigned char) unsigned char 8bits 0~255 2.Signed 8bitsIplImage数据结构参数:IPL_DEPTH_8SCvMat数据结构参数:CV_8S

[OpenCV学习笔记1][OpenCV基本数据类型]

CvPoint基于二维整形坐标轴的点typedef struct CvPoint{int x; /* X 坐标, 通常以 0 为基点 */int y; /* y 坐标,通常以 0 为基点 */}CvPoint;/* 构造函数 */inline CvPoint cvPoint( int x, int y );/* 从 CvPoint2D32f 类型转换得来 */inline CvPoint cvPointFrom32f( CvPoint2D32f point ); CvPoint基于二维整形坐标轴

OpenCV图像的轮廓

查找轮廓 轮廓到底是什么?一个轮廓一般对应一系列的点,也就是图像中的一条曲线.表示的方法可能根据不同情况而有所不同.有多重方法可以表示曲线.在openCV中一般用序列来存储轮廓信息.序列中的每一个元素是曲线中一个点的位置.关于序列表示的轮廓细节将在后面讨论,现在只要简单把轮廓想象为使用CvSeq表示的一系列的点就可以了. 函数cvFindContours()从二值图像中寻找轮廓.cvFindContours()处理的图像可以是从cvCanny()函数得到的有边缘像素的图像,或者是从cvThres

OpenCv学习笔记(三)---OpenCv中基本数据类型--Point,Size,Rect,Scalar,Vec3b类类型的详细解释及其OpenCv中源代码的详细分析

/********************************************************************************************* 程序功能: OpenCv的基本数据结构源代码的解读,我们常用的OpenCv的基本数据结构有六种: 1--Point类 2--Size类 3--Rect类 4--Scalar类 5--Vec3b--向量模板类 6--Range类 编写环境: OpenCv2.4.8+VS2010 地点时间: 陕西师范大学 201

OpenCv的基本数据类型

构造函数一般就是把第一个C变成小写 CvScalar有三个构造函数:1.cvScalar,分别给4个值赋值2.cvRealScalar,给第一个值赋值,其余三个为0 3.cvScalarAll,给所有参数赋一个值 1.CvArr 为抽象基类 2.CvMat typedef struct CvMat{int type; /* CvMat 标识 (CV_MAT_MAGIC_VAL), 元素类型和标记 */int step; /* 以字节为单位的行数据长度*/int* refcount; /* 数据引

OpenCV 中的三大数据类型:CvMat 类型

前言 本文将介绍 OpenCV 中的矩阵结构 CvMat 并提供几个很常用的矩阵使用方法. 更多的矩阵处理函数还请参阅相关资料. CvMat 的类型定义 1 typedef struct CvMat 2 { 3 int type; // 数据类型 4 int step; // 行长度 5 int* refcount; /* 内部使用 */ 6 int hdr_refcount; /* 内部使用 */ 7 union // 指向数据区的指针 8 { 9 uchar* ptr; 10 short*

深度图从ros数据类型转换成了opencv数据类型

近期在参考高翔博士的的"一起学RGBD-SLAM"教程,用realsense D435相机做点云合成. 一. RGBD图像采集 以下是我在ros下,通过image_transport包,根据给定的采集速度从realsense D435发布的topic中订阅深度图的代码. void depth_Callback(const sensor_msgs::ImageConstPtr& depth_msg) { cv_bridge::CvImagePtr depth_ptr; try {

OpenCV 中的三大数据类型( 概述 )

前言 OpenCV 提供了许多封装好了的类型,而其中,以三大类型最为核心.本文将大致介绍这三大类型. CvArr:不确定数组 它可以被视为一个抽象基类,后面的两大类型都继承此类型并扩展.只要某个函数的形参是这个类型,那么我们就可以把后面两种类型作为实参传递进去做处理. CvMat:多通道矩阵 它用来存放矩阵,OpeCV 提供了很多对此类型进行操作的函数,故使用此类型可以轻松玩转矩阵结构 :). IplImage:图像头 它用来存放图像,在之前的示例代码中,已经见到很多次了.由于对计算机而言,图像