【发布时间】:2011-12-16 12:36:42
【问题描述】:
我已经实现了一个 openCV 应用程序,其中我使用了 SURF 描述符。它工作正常,代码如下所示:
我减小输入视频流的大小以加快速度
capture.set(Highgui.CV_CAP_PROP_FRAME_WIDTH, display.getWidth());
capture.set(Highgui.CV_CAP_PROP_FRAME_HEIGHT, display.getHeight());
capture.retrieve(mRgba, Highgui.CV_CAP_ANDROID_COLOR_FRAME_RGBA);
try{
//-- Step 1: Detect the keypoints using SURF Detector
surfDetector.detect( mRgba, vector1 );
for (KeyPoint t : vector1)
Core.circle(mRgba, t.pt, 10, new Scalar(100, 100,100));
//-- Step 2: Calculate descriptors (feature vectors)
//extractor.compute(mRgba, vector1, descriptor1);
//-- Draw matches
//Mat img_matches;
//drawMatches( mRgba, vector1, mRgba, vector1, matches, img_matches );
}catch(Exception e){
Log.e( "ERROR", e.toString());
}
但是计算仍然太慢,所以我需要找到另一种方法来降低输入视频流的质量。或者,如果您知道另一种加快速度的方法,请随时与我分享;)
感谢您的时间和回答
【问题讨论】:
-
你的帧率是多少?
-
我没有设置它是默认值,但我不知道如何设置它,或者性能/视觉的最佳值是什么
-
但是如果你想要输出视频 FPS,它是每 4-5 秒 1 帧,所以这太可怕了
-
您是否进行了分析?我认为来自 davlik 的本地调用非常昂贵。访问从相机应用程序分配的映射内存也非常昂贵
-
我不是很明白你的问题,但答案是不会的。