📄 cxcore中文 参考手册.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<HTML><HEAD><TITLE>CXCORE Reference Manual</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312"><LINK
href="opencvref.css" type=text/css charset=ISO-8859-1 rel=STYLESHEET>
<META content="Microsoft FrontPage 4.0" name=GENERATOR></HEAD>
<BODY>
<H1>CXCORE 参考手册</H1>
<HR>
<p><a href="http://blog.csdn.net/hunnish">HUNNISH</a> 注:</p>
<p>本翻译是直接根据 OpenCV Beta 4.0
版本的用户手册翻译的,原文件是:<opencv_directory>/doc/ref/opencvref_cxcore.htm,
可以从 SOURCEFORG 上面的 OpenCV 项目下载,也可以直接从 <a href="http://www.assuredigit.com">阿须数码</a>
中下载:<a href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cv.htm">http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore.htm</a>。</p>
<p>翻译中肯定有不少错误,另外也有些术语和原文语义理解不透导致翻译不准确或者错误,也请有心人赐教。</p>
<p>翻译由Y.Q.Zhang, J.H.Tan, X.C.Qin, M.Liu 和 Z.T.Fan
鼎力完成,全文由Hunnish做统一修改校正。</p>
<HR>
<P>
<UL>
<LI><A href="#cxcore_basic_structures">基础结构</A>
<LI><A href="#cxcore_arrays">数组操作</A>
<UL>
<LI><A href="#cxcore_arrays_alloc_free">初始化</A>
<LI><A href="#cxcore_arrays_get_set">获取元素和数组子集</A>
<LI><A href="#cxcore_arrays_copying">拷贝和填充</A>
<LI><A href="#cxcore_arrays_permute">变换和置换</A>
<LI><A href="#cxcore_arrays_arithm_logic">算术、逻辑和比较</A>
<LI><A href="#cxcore_arrays_stat">统计</A>
<LI><A href="#cxcore_arrays_matrix">线性代数</A>
<LI><A href="#cxcore_arrays_math">数学函数</A> <LI><A href="#cxcore_arrays_rng">随机数生成</A>
<LI><A href="#cxcore_arrays_dxt">离散变换</A> </LI></UL>
<LI><A href="#cxcore_ds">动态结构</A>
<UL>
<LI><A href="#cxcore_ds_storages">内存存储</A>
<LI><A href="#cxcore_ds_sequences">序列</A>
<LI><A href="#cxcore_ds_sets">集合</A>
<LI><A href="#cxcore_ds_graphs">图</A>
<LI><A href="#cxcore_ds_trees">树</A> -----------------------</LI></UL>
<LI><A href="#cxcore_drawing">绘图函数</A>
****************************************<UL>
<LI><A href="#cxcore_drawing_shapes">典线和形状</A>
<LI><A href="#cxcore_drawing_text">文本</A>
<LI><A href="#cxcore_drawing_seq">点集和轮廓</A> </LI></UL>
<LI><A href="#cxcore_persistence">数据保存和运行时类型信息</A> 樊臻韬<UL>
<LI><A href="#cxcore_persistence_ds">文件存储</A>
<LI><A href="#cxcore_persistence_writing">写数据</A>
<LI><A href="#cxcore_persistence_reading">读数据</A>
<LI><A href="#cxcore_persistence_rtti">运行时类型信息和通用函数</A> ---------------</LI></UL>
<LI><A href="#cxcore_misc">其它混合函数</A>
*********************************************<LI><A href="#cxcore_system">错误处理和系统函数</A>
<UL>
<LI><A href="#cxcore_system_error">错误处理</A>
<LI><A href="#cxcore_system_sys">系统函数</A>
谭俊河</LI></UL>
<LI><A href="#cxcore_func_index">依字母顺序函数列表</A>
<LI><A href="#cxcore_sample_index">例子列表</A> ---------------------------</LI></UL><!-- *****************************************************************************************
*****************************************************************************************
***************************************************************************************** -->
<HR>
<H1><A name=cxcore_basic_structures>基础结构</A></H1>
<HR>
<H3><A name=decl_CvPoint>CvPoint</A></H3>
<P class=Blurb>基于二维整形坐标轴的点</P><PRE> typedef struct CvPoint</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>{</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>int x; /* X<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">坐标</SPAN>, <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">通常以</SPAN>0<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">为基点</SPAN> */</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>int y; /* y<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">坐标,通常以</SPAN>0<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">为基点</SPAN> */</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>}</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>CvPoint;</PRE><PRE> <SPAN style="mso-spacerun: yes"> </SPAN>/* <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">构造函数</SPAN> */</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>inline CvPoint cvPoint( int x, int y );</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>/* <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">从</SPAN> CvPoint2D32f<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">类型转换得来</SPAN> */</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>inline CvPoint cvPointFrom32f( CvPoint2D32f point );</PRE>
<HR>
<H3><A name=decl_CvPoint2D32f>CvPoint2D32f</A></H3>
<P class=Blurb>二维浮点坐标上的点</P><PRE>typedef struct CvPoint2D32f</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>{</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>float x; /* X<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">坐标</SPAN>, <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">通常以</SPAN>0<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">为基点</SPAN>*/</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>float y; /* Y<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">坐标</SPAN>, <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">通常以</SPAN>0<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">为基点</SPAN>*/</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>}</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>CvPoint2D32f;</PRE><PRE> <SPAN style="mso-spacerun: yes"> </SPAN>/* <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">构造函数</SPAN> */</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>inline CvPoint2D32f cvPoint2D32f( double x, double y );</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>/* <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">从</SPAN>CvPoint<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">转换来</SPAN> */</PRE><PRE><SPAN style="mso-spacerun: yes"> </SPAN>inline CvPoint2D32f cvPointTo32f( CvPoint point );</PRE>
<HR>
<H3><A name=decl_CvPoint3D32f>CvPoint3D32f</A></H3>
<P class=Blurb>三维浮点坐标上的点</P><PRE> typedef struct CvPoint3D32f
{
float x; /* x-坐标,通常基于0 */
float y; /* y-坐标, 通常基于0*/
float z; /* z-坐标,通常基于0 */
}
CvPoint3D32f;
/* 构造函数 */
inline CvPoint3D32f cvPoint3D32f( double x, double y, double z );
</PRE>
<HR>
<H3><A name=decl_CvSize>CvSize</A></H3>
<P class=Blurb>矩形框大小,以像素为精度</P><PRE> typedef struct CvSize
{
int width; /* 矩形宽 */
int height; /* 矩形高 */
}
CvSize;
/* 构造函数 */
inline CvSize cvSize( int width, int height );
</PRE>
<HR>
<H3><A name=decl_CvSize2D32f>CvSize2D32f</A></H3>
<P class=Blurb>以低像素精度标量矩形框大小</P><PRE> typedef struct CvSize2D32f
{
float width; /* 矩形宽 */
float height; /* 矩形高 */
}
CvSize2D32f;
/* 构造函数*/
inline CvSize2D32f cvSize2D32f( double width, double height );
</PRE>
<HR>
<H3><A name=decl_CvRect>CvRect</A></H3>
<P class=Blurb>矩形框的偏移和大小</P><PRE> typedef struct CvRect
{
int x; /* <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">方形的最左角的</SPAN>x-<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">坐标</SPAN><SPAN style="mso-spacerun: yes"> </SPAN>*/</PRE><PRE> int y; /* <SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">方形的最上或者最下角的</SPAN>y-<SPAN style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'">坐标</SPAN> */</PRE><PRE> int width; /* 宽 */
int height; /* 高 */
}
CvRect;
/* 构造函数*/
inline CvRect cvRect( int x, int y, int width, int height );
</PRE>
<HR>
<H3><A name=decl_CvScalar>CvScalar</A></H3>
<P class=Blurb>可存放在1-,2-,3-,4-TUPLE类型的捆绑数据的容器</P><PRE> typedef struct CvScalar
{
double val[4]
}
CvScalar;
<SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">/* </SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">构造函数:用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">val0</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">初始化</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">val[0]</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">val1</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">初始化</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">val[1]</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">等等</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">*/</SPAN>
inline CvScalar cvScalar( double val0, double val1=0,
double val2=0, double val3=0 );
<SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">/* </SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">构造函数:用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">val0123</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">初始化</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">val0123 */</SPAN>
inline CvScalar cvScalarAll( double val0123 );
<SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">/* </SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">构造函数:用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">val0</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">初始化</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">val[0],val[1]…val[3]</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">用</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">0</SPAN><SPAN style="FONT-SIZE: 12pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-bidi-font-family: 'Times New Roman'">初始化</SPAN><SPAN lang=EN-US style="FONT-SIZE: 12pt; FONT-FAMILY: 'Times New Roman'; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA"> */</SPAN>
inline CvScalar cvRealScalar( double val0 );
</PRE>
<HR>
<H3><A name=decl_CvTermCriteria>CvTermCriteria</A></H3>
<P class=Blurb>迭代算法的终止标准</P><PRE>#define CV_TERMCRIT_ITER 1
#define CV_TERMCRIT_NUMBER CV_TERMCRIT_ITER
#define CV_TERMCRIT_EPS 2
typedef struct CvTermCriteria
{
int type; /* CV_TERMCRIT_ITER 和 CV_TERMCRIT_EPS的联合 */
int max_iter; /* 迭代的最大数 */
double epsilon; /* 结果的精确性 */
}
CvTermCriteria;
/* 构造函数 */
inline CvTermCriteria cvTermCriteria( int type, int max_iter, double epsilon );
/* 检查终止标准并且转换使type=CV_TERMCRIT_ITER+CV_TERMCRIT_EPS,并且满足max_iter 和 epsilon 限制条件 */
CvTermCriteria cvCheckTermCriteria( CvTermCriteria criteria,
double default_eps,
int default_max_iters );
</PRE><!-- *****************************************************************************************
*****************************************************************************************
***************************************************************************************** --><!-- <hr><h2><a name="ch1_array_structs">Array structures</a></h2> -->
<HR>
<H3><A name=decl_CvMat>CvMat</A></H3>
<P class=Blurb>多通道矩阵</P><PRE> typedef struct CvMat
{
int type; /* CvMat 标识 (CV_MAT_MAGIC_VAL), 元素类型和标记 */
int step; /* 以字节为单位的行数据长度*/
int* refcount; /* 数据参考计数 */
union
{
uchar* ptr;
short* s;
int* i;
float* fl;
double* db;
} data; /* data 指针 */
#ifdef __cplusplus
union
{
int rows;
int height;
};
union
{
int cols;
int width;
};
#else
int rows; /* 行数 */
int cols; /* 列数*/
#endif
} CvMat;
</PRE>
<HR>
<H3><A name=decl_CvMatND>CvMatND</A></H3>
<P class=Blurb>多维、多通道密集数组</P><PRE> typedef struct CvMatND
{
int type; /* CvMatND 标识(CV_MATND_MAGIC_VAL), 元素类型和标号*/
int dims; /* 数组维数 */
int* refcount; /* 数据参考计数 */
union
{
uchar* ptr;
short* s;
int* i;
float* fl;
double* db;
} data; /* data 指针*/
/* 每维的数据结构 (元素号,以字节为单位的元素之间的距离)是配套定义的 */
struct
{
int size;
int step;
}
dim[CV_MAX_DIM];
} CvMatND;
</PRE>
<HR>
<H3><A name=decl_CvSparseMat>CvSparseMat</A></H3>
<P class=Blurb>多维、多通道稀疏数组</P><PRE> typedef struct CvSparseMat
{
int type; /* CvSparseMat 标识 (CV_SPARSE_MAT_MAGIC_VAL), 元素类型和标号 */
int dims; /* 维数 */
int* refcount; /* 参考数量 - 未用 */
struct CvSet* heap; /* HASH表节点池 */
void** hashtable; /* HASH表:每个入口有一个节点列表,有相同的 "以HASH大小为模板的HASH值" */
int hashsize; /* HASH表大小 */
int total; /* 稀疏数组的节点数 */
int valoffset; /* 数组节点值在字节中的偏移 */
int idxoffset; /* 数组节点索引在字节中的偏移 */
int size[CV_MAX_DIM]; /*维大小 */
} CvSparseMat;
</PRE>
<HR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -