标签: feature-detection

使用CSS功能/特征检测检测IE11

IE10 +不再支持浏览器检测标签来识别浏览器.

为了检测IE10,我使用JavaScript和功能测试技术来检测某些带ms前缀的样式,例如msTouchActionmsWrapFlow.

我想对IE11做同样的事情,但我假设所有的IE10样式也将在IE11中得到支持.任何人都可以帮我识别IE11中唯一可以用来分辨两者的风格或功能吗?

额外信息

  • 我不想使用用户代理类型检测,因为它是如此的参差不齐,并且可以更改,我想我已经读过IE11故意试图隐藏它是Internet Explorer的事实.
  • 有关IE10功能测试如何工作的示例,我使用此JsFiddle(不是我的)作为我测试的基础.
  • 此外,我期待很多答案"这是一个坏主意......".我对此的需求之一是IE10声称它支持某些功能,但实现得非常糟糕,我希望能够区分IE10和IE11 +,以便将来继续使用基于功能的检测方法.
  • 这个测试与Modernizr测试结合在一起,只会使一些功能"回退"到不那么迷人的行为.我们不是在谈论关键功能.

我也在使用Modernizr,但在这里没有用.我需要帮助解决我明确提出的问题.

sample feature-detection internet-explorer-11

77
推荐指数
6
解决办法
9万
查看次数

检测器,提取器和匹配器的分类

我是opencv的新手,并尝试在两个图像之间实现图像匹配.为此,我试图理解特征描述符,描述符提取器和描述符匹配器之间的区别.我遇到了很多术语,试图在opencv文档网站上阅读它们,但我似乎无法理解这些概念.我理解这里的基本区别.特征检测与描述符提取的区别

但是在研究这个主题时我遇到了以下术语:

快速,GFTT,SIFT,SURF,MSER,STAR,ORB,BRISK,FREAK,Brief

我理解FAST,SIFT,SURF是如何工作的,但似乎无法弄清楚上面哪些只是探测器,哪些是提取器.

然后是匹配者.

FlannBased,BruteForce,knnMatch以及其他一些人.

经过一些阅读后,我认为某些匹配器只能与某些提取器一起使用,如此处所述.OpenCV ORB功能检测器如何工作? 给出的分类非常清楚,但它仅适用于少数提取器,我不理解float和uchar之间的区别.

所以基本上,有人可以请

  1. 如上所述,基于float和uchar,或其他类型的分类,对检测器,提取器和匹配器的类型进行分类?
  2. 解释float和uchar分类之间的区别或者使用哪种分类?
  3. 提到如何初始化(代码)各种类型的探测器,提取器和匹配器?

我知道它要求很多,但我将非常感激.谢谢.

c++ opencv image-processing computer-vision feature-detection

58
推荐指数
1
解决办法
2万
查看次数

特征检测与描述符提取的区别

有谁知道OpenCV 2.3中FeatureDetection和DescriptorExtraction之间的区别?我知道后者是使用DescriptorMatcher进行匹配所必需的.如果是这种情况,FeatureDetection用于什么?

谢谢.

opencv image-processing feature-extraction computer-vision feature-detection

46
推荐指数
2
解决办法
3万
查看次数

使用OpenCV检测图像中的十字

我试图在OpenCV的帮助下检测输入视频流中的形状(十字形).目前我正在设法获得我的十字架的二进制图像效果非常好.不幸的是,我决定提取的blob是否是交叉的算法并不是很好.如下图所示,并非在某些视角下检测到所有角落.

在此输入图像描述

我正在使用findContours()approxPolyDP()获得我的轮廓的近似值.如果我在此近似曲线中检测到12个角/顶点,则假定斑点为十字形.

有没有更好的方法来解决这个问题?我想到了SIFT,但算法必须实时执行,我读到SIFT并不真正适合实时.

c++ video opencv feature-detection

41
推荐指数
2
解决办法
5861
查看次数

使用OpenCV提取HoG功能

我正在尝试使用OpenCV的HoG API提取功能,但我似乎无法找到允许我这样做的API.

我想要做的是从我的所有数据集(一组正面和负面图像)中使用HoG提取特征,然后训练我自己的SVM.

我在OpenCV下偷看了HoG.cpp,但没有用.所有代码都埋没在复杂性中,需要满足不同的硬件需求(例如英特尔的IPP)

我的问题是:

  1. 我是否可以使用OpenCV中的任何API来提取所有要提供给SVM的功能/描述符?如果我可以用它来训练我自己的SVM?
  2. 如果没有,是否有任何现有的库,可以完成同样的事情?

到目前为止,我实际上是将一个现有的库(http://hogprocessing.altervista.org/)从Processing(Java)移植到C++,但它仍然非常慢,检测时间至少为16秒

有没有其他人成功提取HoG功能,你是如何解决它的?你有任何我可以使用的开源代码吗?

提前致谢

opencv feature-extraction computer-vision object-recognition feature-detection

38
推荐指数
1
解决办法
5万
查看次数

如何确定Android设备是否有触摸屏?

我花了相当多的时间让我的UI只使用键盘输入.但最后我不确定我是否可以依赖Android设备都有触摸屏的假设.

有没有办法确定Android设备是否有触摸屏?

android touchscreen feature-detection

36
推荐指数
1
解决办法
2万
查看次数

开发Dilbert漫画图像分类算法的一般方法

作为一个自我发展练习,我想开发一个简单的分类算法,给定Dilbert卡通片的特定单元格,能够识别出动画片中存在哪些角色(Dilbert,PHB,Ratbert等).

我认为最好的方法是(1)将一些算法应用于图像,将其转换为一组特征,以及(2)使用训练集和许多可能的机器学习算法之一来关联存在/没有特定特征存在于细胞中的某些特征.

所以我的问题是 - (a)这是正确的方法,(b)因为有许多分类算法和ML算法要测试,找到合适的算法的好方法是什么,以及(c)你会开始哪种算法因为我们基本上是在对卡通进行分类练习.

python classification machine-learning computer-vision feature-detection

31
推荐指数
1
解决办法
7993
查看次数

是否存在用于尺度不变特征提取的SURF和SIFT的快速替代方案?

SURF和SIFT一样获得专利.ORB和BRIEF没有获得专利,但它们的特征不是规模不变的,严重限制了它们在复杂场景中的实用性.

是否有任何特征提取器能够像SURF一样快速地提取尺度不变的特征,并且不像SURF和SIFT那样严格获得专利?

opencv feature-extraction computer-vision feature-detection

31
推荐指数
4
解决办法
3万
查看次数

检测图像中线条的好方法?

我写了一些代码,使用OpenCV库来检测草地上画的白线.我需要某人对我使用的方法的看法(因为我确信有比我更好的方法).此外,我得到的结果不如我预期的好,因为图像中的微小变化需要调整参数(我需要对固定参数进行操作).

到目前为止我的方法:

  1. 从网络摄像头抓取图像(显然变成灰度)
  2. 通过阈值过滤器运行它(使用THRESH_TO_ZERO模式,它将任何像素都归零阈值以下).
  3. 模糊图像
  4. 通过侵蚀过滤器运行它
  5. 通过Canny边缘探测器运行它
  6. 最后,拍摄此处理后的图像并使用概率Hough变换HoughLinesP查找线条

我应该更改过滤器的顺序吗?

PS我不太关心处理能力; 我正在GPU B上运行HoughLinesP-)

另外,这是一个示例图像: 原始图像

我得到的结果:与canny 与canny 没有canny(略微调整参数) 这次没精算

任何帮助或指导将不胜感激!我只是不知道如何改进它!

更新 根据所选答案使用非常快速的骨架实现(使用TONS of blur)后,我得到了: 有用!

opencv image-processing edge-detection feature-detection hough-transform

27
推荐指数
3
解决办法
3万
查看次数

通过OpenCV改进功能点的匹配

我想匹配立体图像中的特征点.我已经用不同的算法找到并提取了特征点,现在我需要一个很好的匹配.在这种情况下,我使用FAST算法进行检测和提取以及BruteForceMatcher匹配特征点.

匹配代码:

vector< vector<DMatch> > matches;
//using either FLANN or BruteForce
Ptr<DescriptorMatcher> matcher = DescriptorMatcher::create(algorithmName);
matcher->knnMatch( descriptors_1, descriptors_2, matches, 1 );

//just some temporarily code to have the right data structure
vector< DMatch > good_matches2;
good_matches2.reserve(matches.size());  
for (size_t i = 0; i < matches.size(); ++i)
{ 
    good_matches2.push_back(matches[i][0]);     
}
Run Code Online (Sandbox Code Playgroud)

因为有很多错误的匹配我计算了最小和最大距离并删除了所有太糟糕的匹配:

//calculation of max and min distances between keypoints
double max_dist = 0; double min_dist = 100;
for( int i = 0; i < descriptors_1.rows; i++ )
{
    double dist …
Run Code Online (Sandbox Code Playgroud)

c++ opencv matching feature-detection

27
推荐指数
3
解决办法
5万
查看次数