⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cxcore中文 参考手册.htm

📁 Opencv的中文参考手册
💻 HTM
📖 第 1 页 / 共 5 页
字号:
<HR>

<H3><A name=decl_cvCreateMatHeader>CreateMatHeader</A></H3>
<P class=Blurb>创建新的矩阵头</P><PRE>CvMat* cvCreateMatHeader( int rows, int cols, int type );
</PRE>
<P>
<DL>
  <DT>rows 
  <DD>矩阵行数. 
  <DT>cols 
  <DD>矩阵列数. 
  <DT>type 
  <DD>矩阵元素类型(见 <A href="#decl_cvCreateMat">cvCreateMat</A>). </DD></DL>    
<P>函数 <A href="#decl_cvCreateMatHeader">cvCreateMatHeader</A> 分配新的矩阵头并且返回指向它的指针.     
矩阵数据可被进一步的分配,使用<A href="#decl_cvCreateData">cvCreateData</A> 或通过 <A     
href="#decl_cvSetData">cvSetData</A>明确的分配数据. </P>
<HR>

<H3><A name=decl_cvReleaseMat>ReleaseMat</A></H3>
<P class=Blurb>删除矩阵</P><PRE>void cvReleaseMat( CvMat** mat );
</PRE>
<P>
<DL>
  <DT>mat 
  <DD>双指针指向矩阵. </DD></DL>
<P>函数<A href="#decl_cvReleaseMat">cvReleaseMat</A> 缩减矩阵数据参考计数并且释放矩阵头 :</P><PRE>    if( *mat )
        cvDecRefData( *mat );
    cvFree( (void**)mat );
</PRE>    
<HR>

<H3><A name=decl_cvInitMatHeader>InitMatHeader</A></H3>
<P class=Blurb>初始化矩阵头</P><PRE>CvMat* cvInitMatHeader( CvMat* mat, int rows, int cols, int type,
                        void* data=NULL, int step=CV_AUTOSTEP );
</PRE>
<P>
<DL>
  <DT>mat 
  <DD>指针指向要被初始化的矩阵头. 
  <DT>rows 
  <DD>矩阵的行数. 
  <DT>cols 
  <DD>矩阵的列数. 
  <DT>type 
  <DD>矩阵元素类型. 
  <DT>data 
  <DD>可选的,将指向数据指针分配给矩阵头. 
  <DT>step 
  <DD>排列后的数据的整个行宽,默认状态下,使用STEP的最小可能值。例如假定矩阵的行与行之间无隙 </DD></DL>
<P>函数 <A href="#decl_cvInitMatHeader">cvInitMatHeader</A> 初始化已经分配了的 <A     
href="#decl_CvMat">CvMat</A> 结构. 它可以被OpenCV矩阵函数用于处理原始数据。     
<P>例如, 下面的代码计算通用数组格式存贮的数据的矩阵乘积. </P>    
<P><FONT color=blue size=4>计算两个矩阵的积</FONT></P><PRE>   double a[] = { 1, 2, 3, 4
                  5, 6, 7, 8,
                  9, 10, 11, 12 };

   double b[] = { 1, 5, 9,
                  2, 6, 10,
                  3, 7, 11,
                  4, 8, 12 };

   double c[9];
   CvMat Ma, Mb, Mc ;

   cvInitMatHeader( &amp;Ma, 3, 4, CV_64FC1, a );
   cvInitMatHeader( &amp;Mb, 4, 3, CV_64FC1, b );
   cvInitMatHeader( &amp;Mc, 3, 3, CV_64FC1, c );

   cvMatMulAdd( &amp;Ma, &amp;Mb, 0, &amp;Mc );
   // c 数组存贮 a(3x4) 和 b(4x3) 矩阵的积
</PRE>
<HR>

<H3><A name=decl_cvMat>Mat</A></H3>
<P class=Blurb>初始化矩阵的头(轻磅变量)</P><PRE>CvMat cvMat( int rows, int cols, int type, void* data=NULL );
</PRE>
<P>
<DL>
  <DT>rows 
  <DD>矩阵行数 
  <DT>cols 
  <DD>列数. 
  <DT>type 
  <DD>元素类型(见CreateMat). 
  <DT>data 
  <DD>可选的分配给矩阵头的数据指针 . </DD></DL>    
<P>函数 <A href="#decl_cvMat">cvMat</A> 是个一快速内连函数,替代函数 <A     
href="#decl_cvInitMatHeader">cvInitMatHeader</A>. 也就是说他相当于: <PRE>     CvMat mat;
     cvInitMatHeader( &amp;mat, rows, cols, type, data, CV_AUTOSTEP );
</PRE>    
<HR>

<H3><A name=decl_cvCloneMat>CloneMat</A></H3>
<P class=Blurb>创建矩阵拷贝</P><PRE>CvMat* cvCloneMat( const CvMat* mat );
</PRE>
<P>
<DL>
  <DT>mat 
  <DD>输入矩阵. </DD></DL>
<P>函数 <A href="#decl_cvCloneMat">cvCloneMat</A> 创建输入矩阵的一个拷贝并且返回 该矩阵的指针. </P>    
<HR>

<H3><A name=decl_cvCreateMatND>CreateMatND</A></H3>
<P class=Blurb>创建多维密集数组</P><PRE>CvMatND* cvCreateMatND( int dims, const int* sizes, int type );
</PRE>
<P>
<DL>
  <DT>dims 
  <DD>数组维数. 但不许超过 CV_MAX_DIM (默认=32,但这个默认值可能在编译时被改变 )的定义     
  <DT>sizes 
  <DD>数组的维大小. 
  <DT>type 
  <DD>数组元素类型. 与 <A href="#decl_CvMat">CvMat</A>相同 </DD></DL>    
<P>函数<A href="#decl_cvCreateMatND">cvCreateMatND</A> 
分配头给多维密集数组并且分配下面的数据,返回指向被创建数组的指针 . 是下列的缩减形式:</P><PRE>    CvMatND* mat = cvCreateMatNDHeader( dims, sizes, type );
    cvCreateData( mat );
</PRE>    
<P>矩阵按行存贮. 所有的行以4个字节排列。. </P>    
<HR>

<H3><A name=decl_cvCreateMatNDHeader>CreateMatNDHeader</A></H3>
<P class=Blurb>创建新的数组头</P><PRE>CvMatND* cvCreateMatNDHeader( int dims, const int* sizes, int type );
</PRE>
<P>
<DL>
  <DT>dims 
  <DD>数组维数. 
  <DT>sizes 
  <DD>维大小. 
  <DT>type 
  <DD>数组元素类型. 与 <A href="#decl_CvMat">CvMat</A>相同 </DD></DL>    
<P>函数<A href="#decl_cvCreateMatND">cvCreateMatND</A> 分配头给多维密集数组。数组数据可以用 <A     
href="#decl_cvCreateData">cvCreateData</A> 进一步的被分配或利用<A     
href="#decl_cvSetData">cvSetData</A>由用户明确指定. </P>
<HR>

<H3><A name=decl_cvReleaseMatND>ReleaseMatND</A></H3>
<P class=Blurb>删除多维数组</P><PRE>void cvReleaseMatND( CvMatND** mat );
</PRE>
<P>
<DL>
  <DT>mat 
  <DD>指向数组的双指针. </DD></DL>
<P>函数 <A href="#decl_cvReleaseMatND">cvReleaseMatND</A> 缩减数组参考计数并释放数组头:</P><PRE>    if( *mat )
        cvDecRefData( *mat );
    cvFree( (void**)mat );
</PRE>    
<HR>

<H3><A name=decl_cvInitMatNDHeader>InitMatNDHeader</A></H3>
<P class=Blurb>初始化多维数组头</P><PRE>CvMatND* cvInitMatNDHeader( CvMatND* mat, int dims, const int* sizes, int type, void* data=NULL );
</PRE>
<P>
<DL>
  <DT>mat 
  <DD>指向要被出初始化的数组头指针. 
  <DT>dims 
  <DD>数组维数. 
  <DT>sizes 
  <DD>维大小. 
  <DT>type 
  <DD>数组元素类型. 与 <A href="#decl_CvMat">CvMat</A>相同     
  <DT>data 
  <DD>可选的分配给矩阵头的数据指针. </DD></DL>
<P>函数 <A href="#decl_cvInitMatNDHeader">cvInitMatNDHeader</A> 初始化 用户指派的<A     
href="#decl_CvMatND">CvMatND</A> 结构. </P>    
<HR>

<H3><A name=decl_cvCloneMatND>CloneMatND</A></H3>
<P class=Blurb>创建多维数组的完整拷贝</P><PRE>CvMatND* cvCloneMatND( const CvMatND* mat );
</PRE>
<P>
<DL>
  <DT>mat 
  <DD>输入数组 </DD></DL>
<P>函数 <A href="#decl_cvCloneMatND">cvCloneMatND</A> 创建输入数组的拷贝并返回指针. </P>    
<HR>

<H3><A name=decl_cvDecRefData>DecRefData</A></H3>
<P class=Blurb>缩减数组数据的参考计数</P><PRE>void cvDecRefData( CvArr* arr );
</PRE>
<P>
<DL>
  <DT>arr 
  <DD>数组头. </DD></DL>
<P>函数 <A href="#decl_cvDecRefData">cvDecRefData</A> 缩减<A     
href="#decl_CvMat">CvMat</A> 或<A href="#decl_CvMatND">CvMatND</A>     
数据的参考计数,如参考计数指针非NULL并且计数到0就删除数据,在当前的执行中只有当数据是用<A     
href="#decl_cvCreateData">cvCreateData</A> 分配的参考计算才会是非NULL,换句话说 :<BR>使用<A     
href="#decl_cvSetData">cvSetData</A>指派外部数据给头<BR>矩阵头代表部分大的矩阵或图像<BR>矩阵头是从图像头或N维矩阵头转换过来的。 
<BR>参考计数如果被设置成NULL就不会被缩减. 无论数据是否被删除,数据指针和参考计数指针都将被这个函数清空。 </P>    
<HR>

<H3><A name=decl_cvIncRefData>IncRefData</A></H3>
<P class=Blurb>增加数组数据的参考计数</P><PRE>int cvIncRefData( CvArr* arr );
</PRE>
<P>
<DL>
  <DT>arr 
  <DD>数组头. </DD></DL>
<P>函数 <A href="#decl_cvIncRefData">cvIncRefData</A> 增加 <A     
href="#decl_CvMat">CvMat</A> 或 <A href="#decl_CvMatND">CvMatND</A>     
数据参考计数,如果参考计数非空返回新的计数值 否则返回0。 </P>    
<HR>

<H3><A name=decl_cvCreateData>CreateData</A></H3>
<P class=Blurb>分配数组数据</P><PRE>void cvCreateData( CvArr* arr );
</PRE>
<P>
<DL>
  <DT>arr 
  <DD>数组头. </DD></DL>
<P>函数 <A href="#decl_cvCreateData">cvCreateData</A> 分配图像,矩阵或多维数组数据.     
对于矩阵类型使用OpenCV的分配函数,对于     
IplImage类型如果<CODE>CV_TURN_ON_IPL_COMPATIBILITY没有被调用也是可以使用这种方法的反之使用</CODE> IPL     
函数分配数据 </P>
<HR>

<H3><A name=decl_cvReleaseData>ReleaseData</A></H3>
<P class=Blurb>释放数组数据</P><PRE>void cvReleaseData( CvArr* arr );
</PRE>
<DL>
  <DT>arr 
  <DD>数组头 </DD></DL>
<P>函数<A href="#decl_cvReleaseData">cvReleaseData</A> 释放数组数据. 对于 <A     
href="#decl_CvMat">CvMat</A> 或 <A href="#decl_CvMatND">CvMatND</A> 结构只需调用     
cvDecRefData(), 也就是说这个函数不能删除外部数据。见 <A     
href="#decl_cvCreateData">cvCreateData</A>. </P>
<HR>

<H3><A name=decl_cvSetData>SetData</A></H3>
<P class=Blurb>指派用户数据给数组头</P><PRE>void cvSetData( CvArr* arr, void* data, int step );
</PRE>
<P>
<DL>
  <DT>arr 
  <DD>数组头. 
  <DT>data 
  <DD>用户数据. 
  <DT>step 
  <DD>整行字节长. </DD></DL>
<P>函数<A href="#decl_cvSetData">cvSetData</A> 指派用记数据给数组头. 头应该已经使用     
cvCreate*Header, cvInit*Header 或 <A href="#decl_cvMat">cvMat</A> (对于矩阵)初始化过.     
</P>
<HR>

<H3><A name=decl_cvGetRawData>GetRawData</A></H3>
<P class=Blurb>返回组数的底层信息</P><PRE>void cvGetRawData( const CvArr* arr, uchar** data,
                   int* step=NULL, CvSize* roi_size=NULL );
</PRE>
<P>
<DL>
  <DT>arr 
  <DD>数组头. 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -