📄 cxcore reference manual.htm
字号:
href="http://www.assuredigit.com/incoming/sourcecode/opencv/chinese_docs/ref/opencvref_cxcore_chinese.htm#decl_cvInitMatHeader">cvInitMatHeader</A>.
也就是说他相当于: <PRE> CvMat mat;
cvInitMatHeader( &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**)&data, &step, &size );
step /= sizeof(data[0]);
for( y = 0; y < size.height; y++, data += step )
for( x = 0; x < 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 + -