- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
使用 OpenCV-2.4.5-android-sdk,我尝试通过特征检测(ORB 检测器和汉明匹配器)来匹配两张图像。不幸的是,在计算描述符时我总是得到 NullPointerException。我究竟做错了什么?
FeatureDetector detector = FeatureDetector.create("ORB");
DescriptorExtractor descriptor = DescriptorExtractor.create("ORB");
BFMatcher matcher = new BFMatcher(Hamming.normType, true);
KeyPoint keypoints1 = new KeyPoint();
KeyPoint keypoints2 = new KeyPoint();
CvMat[] descriptors = new CvMat[2];
//ORB orb = new ORB();
//orb.detect(image1, null, keypoints1);
detector.detect(image1, keypoints1, null);
descriptor.compute(image1, keypoints1, descriptors[0]);
detector.detect(image2, keypoints2, null);
//orb.detect(image2, null, keypoints2);
descriptor.compute(image2, keypoints2, descriptors[1]);
// matcher should include 2 different image's descriptors
DMatch matches = new DMatch();
matcher.match(descriptors[0], descriptors[1], matches, null);
我想知道,如果我有一个更改,可以在没有 android-ndk 的情况下使用 openCV 在 Android 上执行特征检测。您会建议尝试编写和集成 native C++ 代码吗?
更新:重组项目设置后,执行以下操作:http://docs.opencv.org/trunk/doc/tutorials/introduction/android_binary_package/dev_with_OCV_on_Android.html#dev-with-ocv-on-android描述,代码如下所示:
FeatureDetector detector = FeatureDetector.create(FeatureDetector.ORB);
DescriptorExtractor descriptor = DescriptorExtractor.create(DescriptorExtractor.ORB);
DescriptorMatcher matcher = DescriptorMatcher.create(DescriptorMatcher.BRUTEFORCE_HAMMING);
MatOfKeyPoint keypoints1 = new MatOfKeyPoint();
MatOfKeyPoint keypoints2 = new MatOfKeyPoint();
Mat[] descriptors = new Mat[2];
//ORB orb = new ORB();
//orb.detect(image1, null, keypoints1);
detector.detect(image1, keypoints1, null);
descriptor.compute(image1, keypoints1, descriptors[0]);
detector.detect(image2, keypoints2, null);
//orb.detect(image2, null, keypoints2);
descriptor.compute(image2, keypoints2, descriptors[1]);
// matcher should include 2 different image's descriptors
MatOfDMatch matches = new MatOfDMatch();
matcher.match(descriptors[0], descriptors[1], matches);
NPE 仍然会发生。
最佳答案
您似乎错过了将对象分配给 descriptors[]
数组。
descriptors[0] = new CvMat();
descriptors[1] = new CvMat();
关于android - OpenCV 2.4.5 android, FeatureDetector, DescriptorExtractor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17151401/
我正在尝试使用FAST FeatureDetector来检测手机摄像头拍摄的视频的关键点。当我尝试运行matcher.match(descriptor1,descriptor2,matches)时,出
我最近开始尝试OpenCv,尤其是功能检测器(例如SIFT,SURF ...) 现在,我开始研究OpenCL,我想问一下这些功能检测器是否有OpenCL“支持”。 在“搜索”这个问题时,我发现此链接1
以下是使用 Java 和 OpenCV 3.0 检测彩色皮肤图像中的 Blob /痣的代码 private void initLibService(){ String opencvpath =
BOWImgDescriptorExtractor 必须接收 32F,因此 SURF 或 SIFT 必须用于 DescriptorExtractor,但对于FeatureDetector 当然可以是任
SiftFeatureDetector()和Ptr之间有什么区别?它们显然具有相同的功能。 opencv tutorial使用SiftFeatureDetector,但是当clicking on th
在 OpenCV 中,创建一个 cv::FeatureDetector 是很常见的通过提供特征的名称: cv::Ptr detector = cv::FeatureDetector::create("
我在 x86_64 架构上为 Ubuntu 12.10 使用 OpenCV 2.4.6.1 的 C++ 实现。我正在包装这个 code of the Agast Corner Detector在继承自
我想编写一个允许使用 SIFT、SURF、ORB(所有特征检测器)、差异描述符和差异匹配器的程序。 我想运行这样的东西:features("SIFT","SIFT","BruteForce") 分别是
我已经下载了 Java OpenCV 的示例代码。在几行代码中有 FeatureDetectore() 方法,编译器说它已被弃用。 FeatureDetector detector = Fea
我试图了解 FeatureDetector 之间的区别类和 FeatureFinder类(class)。我已经看到用 OpenCV 编写的全景示例使用了这两个类,并且似乎可以将 SURF 算法与其中任
我需要在立体图像中查找和匹配特征点。因此,我想比较 OpenCV 2.4.5 支持的不同特征检测算法。通过将“SURF”、“SIFT”等传递给函数。 代码片段: #include "opencv2/o
我正在开发一个使用 openCV 进行图像匹配的 iphone 项目。最初我使用的是 cvMatchTemplate(),但输出不是我们预期的。所以我现在正在尝试使用 FLANN 实现 SURF 检测
我正在使用 VS 2008,按照安装指南安装了 OpenCV 2.1。 FeatureDetector/SurfFeatureDetector 在文档中被列为类,但它们被认为是“语法错误:标识符‘Su
我尝试了关于匹配 OpenCV 2.4.5 中的许 multimap 像的示例代码,并修改了该代码。我找到了错误代码: Unhandled exception at 0x585a7090 in tes
使用 OpenCV-2.4.5-android-sdk,我尝试通过特征检测(ORB 检测器和汉明匹配器)来匹配两张图像。不幸的是,在计算描述符时我总是得到 NullPointerException。我
编辑: 我看错了 OpenCV2 代码示例,OpenCV3 中没有 FeatureDetector::create - 这让我很困惑。 嘿,OpenCV 的新手,通过拆解其他人的 C++ 代码通过示例
正如我在标题中已经提到的,这两个导入无法在 opencv 4.1.0 中解析。 import org.opencv.features2d.DescriptorExtractor; import org
我正在尝试使用 SURF 算法进行对象识别。我正在使用 Google 的 OpenCV 2.4.11 和 Camera2BasicExample。正在构造函数中提取特征,但它会导致 detectNot
我刚刚用 contrib repo release 中的额外模块编译了 OpenCV 3.0.0 . 许多Feature Detector和Descriptor Extractor被注释掉如下: 我记
我是一名优秀的程序员,十分优秀!