首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加速emguCV方法

加速emguCV方法
EN

Stack Overflow用户
提问于 2014-10-12 21:44:36
回答 1查看 1.1K关注 0票数 0

我有一个关于加速几个emguCV电话的问题。目前,我有一个捕捉卡,在1920x1080@30赫兹的摄像头。使用directshow和样例抓取器,我捕获每个帧并将其显示在表单上。现在我已经写了一个图像稳定器,但我能跑得最快的是20赫兹左右。

我在我的稳定器中做的第一件事是将1920x1080扩展到640x480,因为它使功能跟踪速度更快。

然后我使用goodFeaturesToTrack

代码语言:javascript
复制
previousFrameGray.GoodFeaturesToTrack(sampleSize, sampleQuality, minimumDistance, blockSize)[0]);

大约需要12到15毫秒。

接下来我要做的是使用以下方法进行光流计算

代码语言:javascript
复制
OpticalFlow.PyrLK(previousFrameGray, frame_gray, prev_corner.ToArray(), new Size(15, 15), 5, new MCvTermCriteria(5), out temp, out status, out err);

这大约需要15-18毫秒。

我调用的最后一个耗时方法是warpAffine函数。

代码语言:javascript
复制
 Image<Bgr, byte> warped_frame = frame.WarpAffine(T, interpMethod, Emgu.CV.CvEnum.WARP.CV_WARP_DEFAULT, new Bgr(BackgroundColor));

这个大约需要10-12毫秒。

其余的计算,图像缩放和什么不需要总共约7-8ms。

因此,一帧计算的总时间约为48 is或约21 or。

不知怎么的,我需要把总时间控制在33毫秒以下。所以现在轮到我提问了。

First:,如果我切换到goodFeatures和opticalFlow中使用GPU,如果有必要的话,它会提供速度上的必要提高吗?

第二:除了使用GPU之外,还有其他方法可以加速这些计算吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-16 18:45:02

嗯,我终于把这些功能转换成了他们的GPU,并得到了我想要的提速。我从48 to降到22 to。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26330322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档