问题标签 [opencv-features2d]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
301 浏览

android - openCV4Android features2d 错误

我想用来在两个图像之间features2d绘制良好的匹配(不是所有匹配)。所以我使用了这段代码:

但是在运行时,会出现这个错误:

CvException ... features2d/src/draw.cpp:208: 错误: (-215) i2 >= 0 && i2 < static_cast(keypoints2.size())

代码中的问题是什么?

0 投票
0 回答
460 浏览

opencv-features2d - 编译 nonfree/features2d.hpp 时出错

我正在尝试c++使用SIFT. 我已经安装并构建了该opencv_contrib-master模块,因为有些人建议最新版本的OpenCV(我拥有的 3.0 版)没有这个模块。我可以在物理上找到非自由文件夹以及其中的 feature2d 文件,但每次我尝试编译时,我都会在“ features2d.hpp”文件本身中得到以下错误:

总共有 26 个错误,但其中大多数是 ' vector not declared' 类型,尽管我也包括在内vector.h。主程序识别 siftfeaturedetector 但错误都来自nonfree/features2d.hpp文件。任何建议这里可能有什么问题?
我也很陌生,OpenCV并为我缺乏技术细节而道歉。谢谢

0 投票
1 回答
1344 浏览

c++ - 使用 Opencv 提取图像的公共部分

我正在编写一个查找图像之间差异的程序。现在,我正在寻找 AKAZE 的功能,所以我有 2 张图像的共同点。问题是这两个图像只有一部分共同点。如何从两个图像中提取公共部分?为了更好地解释:我需要从第一个图像中提取公共部分,然后从第二个图像中提取,这样我就可以absdiff找到差异。我正在用 C++ 编程

谢谢大家!

0 投票
1 回答
116 浏览

c++ - 当我输入 OpenCV 包含头文件时,VS2013 冻结

我对 VS2013 有问题。我正在尝试使用 opencv 和 vs2013 update 4 IDE 在 vc++ 中编写程序。问题是当我刚刚输入这些行时,我的电脑就死机了。事实上,艰苦的活动会运行到 100%,并且在重新启动之前永远不会停止。即使我(几乎不)关闭 VS,甚至当我注销时,硬盘活动仍处于最大状态。代码是:

似乎最后一行出现了问题。仅供参考,我已经在 VS2013 中尝试并运行了很多 OpenCV 示例。当我在另一台计算机上的 VS2012 上尝试上面的代码时,它运行良好,但在另一台计算机上的 VS2013 上,它再次像我的计算机一样冻结。那么这里有什么问题呢?

0 投票
0 回答
208 浏览

c++ - cv::BFMatcher 中的 C++ 异常

当我尝试执行特征匹配时,我遇到了 cv::BFMatcher 问题。我用 xfeatures2D::SIFT 描述符计算描述符。当我尝试执行匹配时,应用程序输出在 f:\dd\vctools\crt_bld\self_64_amd64\crt\ 处显示“0x7ff833308b9c 处的异常,代码:0xe06d7363:C++ 异常,flags=0x1(无法继续执行)(第一次机会) src\xthrow.cpp:13" 代码类似于:

输出消息显示在执行匹配“matcher.knnMatch(descriptorsLeft,descriptorsRight,matchesltor,2)”的第一行中。

奇怪的是它在一个只执行连接点检测、连接点描述和匹配的 qt 项目中工作,但是当我尝试将它加入其他项目(相同的代码、相同的编译器和相同的 qt 版本)时,它显示输出消息和执行停止(应用程序不会中断)。

谢谢你的帮助。

0 投票
1 回答
858 浏览

java - Opencv - Features2D + Homography 不正确的结果

我在正确位置获取检测到的对象的轮廓时遇到了一些问题,就好像坐标在错误的位置一样。我将粗麻布设置为 2000,并且过滤了小于最小距离 3 倍的匹配项。任何帮助,将不胜感激。

运行匹配和单应性的结果:

下面的代码示例:

0 投票
0 回答
76 浏览

opencv - 仅在帧的更改区域上查找 SURF 特征的最佳方法是什么?

例如,我使用 GPU 计算实时 50 fps FullHD 视频的帧的 SURF 描述符:gpu::SURF_GPU但它很慢,我无法为每一帧计算它,只能计算 10 fps。

摄像机是固定的,因此我可以使用以下优化 - 仅在帧的更改区域上计算描述符。我使用gpu::MOG2_GPU背景减法器,获取前景蒙版,并重新计算 SURF 描述符仅用于 cross mask & frame。这要快得多。

这是否足够,或者有必要使用 增加掩蔽区域gpu::dilate()

如果我需要这样做,那么使用多少像素来计算每个 SURF 描述符 - 即我需要将什么值传递给函数gpu::dilate()和?kerneldilation_size

0 投票
1 回答
1914 浏览

java - OpenCV 图像描述符到 JSON

我想在服务器上存储一些图像描述符,以便在 android 手机上进行图像匹配时,我可以获取预先计算的图像描述符,而不是即时进行。我已经成功创建了一个可以获取输入图像并输出最佳匹配的应用程序,但是在将图像描述符矩阵放入 JSON 文件时遇到了一些问题。

下面我放置了一些我试图调整以执行我想要的功能的代码,但我遇到了这些行的错误:

它给出的错误是:

Mat数据类型不兼容:5

描述符矩阵的类型为 CV_32FC1,但它会将其视为 CV_8SC1。完整的代码在下面,想法是我将描述符矩阵传递给 matToJson,然后将输出存储在服务器上,然后使用 matFromJson 检索 JSON 文件的内容。我也无法解析 Base64.DEFAULT,因为它显示错误。任何帮助将不胜感激。

0 投票
0 回答
464 浏览

c++ - 错误 KAZE 与 opencv:使用未声明的标识符

我试图编译一个函数来提取特征。 Ptr<Feature2d> kaze = KAZE::create(); 但我得到了一个错误。首先是“使用未声明的标识符'KAZE'”下一行是kaze->detectAndCompute(img, noArray(), keypoints, descriptors);。据说:“'cv::Feature2D'中没有名为'detectAndCompute'的成员”。我已经包含了标题#include <opencv2/features2d/features2d.hpp>,我还链接了库。我不知道出了什么问题。

0 投票
0 回答
47 浏览

opencv - opencv的hog输出结构

我正在使用 OpenCV 的 HOG 实现提取灰度图像的 HOG 特征。假设我的图像与默认窗口大小(即 128x64)匹配,我很难正确理解该特征向量是如何组织的。这是我所知道的:

  • 每个单元格输出一个 9 个元素的直方图,量化位于该单元格内的边缘的方向(默认为 8x8 像素)。
  • 每个块包含 2x2 单元格。
  • 默认情况下,使用 8x8 块步长。

这导致 7*15*9*4 = 3780 个元素的特征向量。图 7 和 15 是使用 50% 块重叠时水平和垂直适合的块数。一切都很好,直到这里。

如果我们检查第一个块的特征,即前 9*4 个元素,它们是如何排列的?前 9 个 bin 是否对应于块中左上角的单元格?接下来的9个呢?和下一个?9 个 bin 中的每一个代表哪个方位角?bins[0] = 0, bins[1] = 20, bins[2] = 40, ... bins[8] = 160. 还是顺序不同,例如从 -pi/2 到 +pi/ 2?