繁体   English   中英

在c ++和c中使用opencv

[英]using opencv with c++ and c

我想使用opencv和c ++处理视频,执行速度确实很重要。 但是我看到了可能是一个问题,例如C ++的canny函数定义为

void Canny(InputArray image, OutputArray edges, double threshold1, double threshold2, int apertureSize=3, bool L2gradient=false )

C中的等效项定义为

void cvCanny(const CvArr* image, CvArr* edges, double threshold1, double threshold2, int aperture_size=3 )

显然,如果我使用C ++,则传递给函数图像的每次都会被复制,因为我不仅仅使用该函数,所以每秒至少复制24次。 如果使用C函数,则不会遇到该问题,因为不会进行任何复制。 有没有一种方法可以将例如IplImage和Mat结合起来,之后再将IplImage投射到Mat上要花多少钱? 通常,使用IplImage是个好主意吗?

您可能会误解C ++代码的作用。 如果您看一下文档

您将看到InputArrayconst&

typedef const _InputArray& InputArray;

其中InputArray是可以从Mat,Mat_ <T>,Matx <T,m,n>,std :: vector <T>,std :: vector <std :: vector <T>>,std: :vector <Mat>,std :: vector <Mat <T>>,UMat,std :: vector <UMat>或double。 也可以从矩阵表达式构造它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM