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

📄 cxcore reference manual.htm

📁 Opencv的中文参考指南
💻 HTM
📖 第 1 页 / 共 5 页
字号:
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#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="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#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="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_CvMat">CvMat</A>相同 
  </DD></DL>
<P>函数<A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#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="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_CvMat">CvMat</A>相同 
  </DD></DL>
<P>函数<A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_cvCreateMatND">cvCreateMatND</A> 
分配头给多维密集数组。数组数据可以用 <A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_cvCreateData">cvCreateData</A> 
进一步的被分配或利用<A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#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="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#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="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_CvMat">CvMat</A>相同 

  <DT>data 
  <DD>可选的分配给矩阵头的数据指针. </DD></DL>
<P>函数 <A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_cvInitMatNDHeader">cvInitMatNDHeader</A> 
初始化 用户指派的<A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#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="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#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="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_cvDecRefData">cvDecRefData</A> 
缩减<A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_CvMat">CvMat</A> 
或<A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_CvMatND">CvMatND</A> 
数据的参考计数,如参考计数指针非NULL并且计数到0就删除数据,在当前的执行中只有当数据是用<A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_cvCreateData">cvCreateData</A> 
分配的参考计算才会是非NULL,换句话说 :<BR>使用<A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#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="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_cvIncRefData">cvIncRefData</A> 
增加 <A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_CvMat">CvMat</A> 
或 <A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#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="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#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="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_cvReleaseData">cvReleaseData</A> 
释放数组数据. 对于 <A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_CvMat">CvMat</A> 
或 <A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_CvMatND">CvMatND</A> 
结构只需调用 cvDecRefData(), 也就是说这个函数不能删除外部数据。见 <A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#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="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_cvSetData">cvSetData</A> 
指派用记数据给数组头. 头应该已经使用 cvCreate*Header, cvInit*Header 或 <A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#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>数组头. 
  <DT>data 
  <DD>输出指针,指针指向整个图像的结构或ROI 
  <DT>step 
  <DD>输出行字节长 
  <DT>roi_size 
  <DD>输出ROI尺寸 </DD></DL>
<P>函数 <A 
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_cvGetRawData">cvGetRawData</A> 
添充给输出变量数组的底层信息。所有的输出参数是可选的 , 因此这些指针可设为NULL. 如果数组是设置了ROI的 <CODE>IplImage</CODE> 
结构, ROI参数被返回。 </P>
<P>接下来的例子展示怎样去接近数组元素。</P>
<P><FONT color=blue size=4>使用 GetRawData 计算单通道浮点数组的元素绝对值.</FONT> <PRE>    float* data;
    int step;

    CvSize size;
    int x, y;

    cvGetRawData( array, (uchar**)&amp;data, &amp;step, &amp;size );
    step /= sizeof(data[0]);

    for( y = 0; y &lt; size.height; y++, data += step )
        for( x = 0; x &lt; size.width; x++ )
            data[x] = (float)fabs(data[x]);
</PRE>
<HR>

<H3><A name=decl_cvGetMat>GetMat</A></H3>
<P class=Blurb>从不确定数组返回矩阵头</P><PRE>CvMat* cvGetMat( const CvArr* arr, CvMat* header, int* coi=NULL, int allowND=0 );
</PRE>

⌨️ 快捷键说明

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