我有一个简单的问题,我想知道,有哪些库可用,并且可以在c ++或opencv中实现SIFT,HOG(直方图定向梯度)和SURF的良好结果?
因此:1-如果可以,请给我链接代码,我将非常感激.2-如果你知道其中一个或任何类型的信息引导我到我想要的东西,我也会非常感激.
谢谢
我正在使用Andrea Vedaldi的SIFT实现来计算两个图像的筛选描述符.但我想知道是否可以使用SIFT描述符预测对象在下一个图像中的位置.
基本上我有3个像这样的垫子:
Mat descriptors1
Mat descriptors2
Mat descriptors3
Run Code Online (Sandbox Code Playgroud)
每个描述符的加载方式如下:
extractor->compute( object, kp, descriptors );
Run Code Online (Sandbox Code Playgroud)
我怎么能在单个Mat中加入所有描述符(将一个mat添加到另一个)?
例:
Mat fullDesc = descriptors1 + descriptors2 + descriptors3;
Run Code Online (Sandbox Code Playgroud) 首先,我使用SIFT来识别实时服务中的类似图像.像手机相机的照片一样,旋转量小,效果模糊.
我发现了Phash.所以,我在其演示页面上测试了phash .但结果让我感叹.
这是上述测试的结果:

在该测试中,两个图像固定在x轴上.所以他们没有轮换.但右图像的徽标被删除,人被移到左侧.在我看来,这是'非常相似'.此外,SIFT完全抓住了这一点.
现在,这是个问题.
任何人都可以向我解释这个错误来自哪里?这是什么意思?我该如何解决这个问题?也许我的问题太笼统了!抱歉,但我不知道我应该把更多东西放在这里!:P
错误:
Traceback (most recent call last):
File "C:\test\7.4.3.bench.py", line 9, in <module>
print imagesearch.compute_ukbench_score(src,imlist[:100])
File "C:\test\imagesearch.py", line 168, in compute_ukbench_score
pos[i] = [w[1]-1 for w in src.query(imlist[i])[:4]]
File "C:\test\imagesearch.py", line 128, in query
h = self.get_imhistogram(imname)
File "C:\test\imagesearch.py", line 91, in get_imhistogram
"select rowid from imlist where filename='%s'" % imname).fetchone()
ValueError: cannot copy sequence with size 2 to array axis with dimension 4
Run Code Online (Sandbox Code Playgroud)
这是imagesearch.py:
from numpy import *
import pickle
from pysqlite2 import dbapi2 as sqlite
class Indexer(object):
def …Run Code Online (Sandbox Code Playgroud) 我想在MATLAB中实现SIFT.
我通过在DOG(高斯差)空间中定位局部最大值和最小值来获得(比如说)4个不同八度音阶的关键点.然而,我对于如何处理最后3个八度音阶中的关键点感到茫然.
难道我包括他们在关键点的原始图像,如果是,那么我怎么做翻译从缩小图像与原件例如,像素(I,J)的256 x 256图像(第二八度)至像素(I" J")在512x512图像(第1个八度).我尝试了许多筛选教程,但没有找到任何结论.
从3.0版开始,DenseFeatureDetector不再可用.有人可以告诉我如何在OpenCV 3.0中计算密集SIFT功能吗?我在文档中找不到它.
非常感谢你提前!
在我的opencv项目中,我想检测图像中的复制移动伪造.我知道如何使用opencv FLANN在2个不同的图像中进行特征匹配,但是我对如何使用FLANN进行图像中的检测复制 - 移动伪造感到困惑.
P.S1:我得到了图像的筛选关键点和描述符,并坚持使用特征匹配类.
P.S2:特征匹配的类型对我来说并不重要.
提前致谢.
更新:
这些图片是我需要的一个例子
并且有一个代码可以匹配两个图像的特征,并在两个图像(不是一个)上执行类似的操作,android native opencv格式的代码如下所示:
vector<KeyPoint> keypoints;
Mat descriptors;
// Create a SIFT keypoint detector.
SiftFeatureDetector detector;
detector.detect(image_gray, keypoints);
LOGI("Detected %d Keypoints ...", (int) keypoints.size());
// Compute feature description.
detector.compute(image, keypoints, descriptors);
LOGI("Compute Feature ...");
FlannBasedMatcher matcher;
std::vector< DMatch > matches;
matcher.match( descriptors, descriptors, matches );
double max_dist = 0; double min_dist = 100;
//-- Quick calculation of max and min distances between keypoints
for( int i = 0; i < descriptors.rows; i++ …Run Code Online (Sandbox Code Playgroud) 我的目标是在静态图像和视频中找到已知的徽标.我希望通过使用KAZE或AKAZE和RanSac进行特征检测来实现这一目标.
我的目标是:https://www.youtube.com/watch?v = nzrqH ...
我将使用筛选来识别某种类型的对象,如果该对象的颜色发生变化,它能识别它吗?我将使用opencv库进行筛选cv2.xfeatures2d.SIFT_create()