1.在求矩阵转置方面,cvReshape比cvTranspose要好:
cvMat* matT, hdr;
matT = cvReshape( mat, &hdr, CV_MAT_CN(mat->type), mat->cols );
以上方式比下边的方式要好
CvMat* matT = cvCreateMat( mat->cols, mat->rows, mat->type );
cvTranpose( mat, matT );
cvReleaseMat( &matT );
原因是cvReshape在转置时不需要内存分配。
CvMat* mat, hdr;
mat = cvReshape( orig, &hdr, nChannel, nRow );
mat的地址指向的是orig的地址,而没有重新分配地址,形如CvMat* cvXxx( const CvMat*, &hdr )的函数都是这样的。
当然这种方式只适用于部分向量,而不适用于由
cvGetRow或者cvGetCols得到的向量,因为这样得到的向量内存是不连续的。
2.通过cvGetRow达到cvSetRow的目的
这个纯属是上边那个结论的小技巧,我们用cvGetRow取出指定行,其实就是取出指向指定行的地址,
然后用cvCopy来修改,原行自然就被改动了:
CvMat *row, hdr;
row = cvGetRow( mat, &hdr, 1 );
cvCopy( another_row, row );
// mat also modified.
分享到:
相关推荐
《OpenCV教程——基础篇》刘瑞祯 实例源代码。有注释,project,范例代码齐全。
OpenCV教程——基础篇3,于仕琪著,这两天正在学习
OpenCV教程——基础篇,于仕琪著,这两天正在学习
OpenCV教程——基础篇1/3,于仕琪著,这两天正在学习。
opencv教程——基础篇书籍的第四章第五章部分的示例代码
OpenCV教程——基础篇 作者:刘瑞祯 于仕琪 机器视觉方面的书,很不错。
OpenCV教程——基础篇.part1 作 者:于仕琪 刘瑞祯 编著
opencv教程——基础篇书籍第五章的部分实例代码
OpenCV教程——基础篇(刘瑞祯 于仕琪)---源代码
opencv教程——基础篇书籍中的第二章的示例代码
目前,OpenCV逐步成为一个通用的基础研究...OpenCV实现了大量通用算法,涉及到图像处理、结构分析、运动检测、摄像机定标、三维重建以及机器学习等方面,并有较高的运行效率。书中所有实例均提供了C/C++语言的源代码。
目前,OpenCV逐步成为一个通用的基础研究...OpenCV实现了大量通用算法,涉及到图像处理、结构分析、运动检测、摄像机定标、三维重建以及机器学习等方面,并有较高的运行效率。书中所有实例均提供了C/C++语言的源代码。
一本介绍OpenCV的基础图书,对OpenCV开放源代码计算机视觉库进行的详细讲解
含实例、图片及程序代码,还有于仕琪的幻灯片讲义
《OpenCV基础教程》一书的光盘 ...OpenCV实现了大量通用算法,涉及到图像处理、结构分析、运动检测、摄像机定标、三维重建以及机器学习等方面,并有较高的运行效率。书中所有实例均提供了C/C++语言的源代码。
这是于老师出的关于opencv 的第一版书,讲的很细,值得初学者学习。
OpenCV教程基础篇 电子书 pdf 作者:刘瑞祯 于仕琪 本书是国内第一本全面介绍OpenCV的中文版图书,对OpenCV开放源代码计算机视觉库进行了详细讲解。
资源包括opencv学习中的一些典型示例程序——鼠标响应方面,均已经通过测试。从基础的编程语法到精讲的实例程序,程序的思想和资源来源于如下书籍: 1、OpenCV 2 计算机视觉编程手册_中文版(必学 ) 2、OpenCV 2 ...
penCV教程——基础篇.part2 作 者:于仕琪 刘瑞祯 编著
书中的C/C++语言实例。各实例子目录中的*.dsw和*.dsp文件分别为Windows下Visual C++ 6.0的Workspace文件和Project文件;Makefile是Linux下GNU Make的输入文件。在Windows环境下,双击*.dsw文件将会启动Visual C++ ...