android studio sift,android - 使用SIFT / SURF通过Android Studio在Android上使用opencv进行特征提取 - 堆栈内存溢出...

在Android Studio 1.1中,开发者遇到一个问题:使用OpenCV库进行SIFT或SURF特征提取和匹配时,应用运行一秒钟后崩溃。已将必要的本机库文件放入jniLibs文件夹,并实现了关键代码,包括颜色转换、特征检测、关键点绘制等步骤。然而,应用仍然无法正常运行。问题可能与OpenCV库加载、JNI接口或者特定平台的兼容性有关。
摘要由CSDN通过智能技术生成

我正在使用opencv在android studio上的android上开发功能提取/匹配应用程序。我按照以下步骤使用本机代码以使用SIFT或SURF算法。.我已经复制了文件夹(armeabi,armeabi-v7a, ... etc)到jniLibs文件夹,这是我的主要方法代码

public class MainActivity extends Activity implements CvCameraViewListener2{

private Mat mRgba;

private Mat mGrayMat;

private CameraBridgeViewBase mOpenCvCameraView;

Mat descriptors ;

List descriptorsList;

FeatureDetector featureDetector;

MatOfKeyPoint keyPoints;

DescriptorExtractor descriptorExtractor;

DescriptorMatcher descriptorMatcher;

boolean mIsJavaCamera = true;

static {System.loadLibrary("opencv_java");}

private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) {

@Override

public void onManagerConnected(int status) {

switch (status) {

case LoaderCallbackInterface.SUCCESS:

{

//Log.i(TAG, "OpenCV loaded successfully");

mOpenCvCameraView.enableView();

} break;

default:

{

super.onManagerConnected(status);

} break;

}

}

};

@Override

public void onCameraViewStarted(int width, int height) {

mRgba = new Mat();

mGrayMat = new Mat();

featureDetector=FeatureDetector.create(FeatureDetector.SIFT);

descriptorExtractor=DescriptorExtractor.create(DescriptorExtractor.SURF);

descriptorMatcher=DescriptorMatcher.create(6);

keyPoints = new MatOfKeyPoint();

descriptors = new Mat();

}

public Mat onCameraFrame(CameraBridgeViewBase.CvCameraViewFrame inputFrame) {

final Mat rgba = inputFrame.rgba();

Imgproc.cvtColor(rgba, rgba, Imgproc.COLOR_RGBA2GRAY);

featureDetector.detect(rgba, keyPoints);

Features2d.drawKeypoints(rgba, keyPoints, rgba);

return rgba;

}

当我编译并运行该应用程序时,它运行不到一秒钟,然后崩溃了。 你有什么建议? (我使用的是Android Studio 1.1,而不是Eclipse)。

提前致谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值