标签: feature-detection

使用特征检测而不是用户代理测试来测试IE6

我正在使用html5boilerplate和Modernizr库.我的应用程序是使用jQuery构建的.Modernizr和jQuery都内置了特征检测,但我的理解是Modernizr更完整.我打算使用Modernizr进行特征检测,除非有充分的理由为此使用jQuery.

我的应用程序仅适用于更现代的浏览器(例如IE7 +,Firefox,Chrome,Safari和更新的Opera),但它在IE6中仍然有效.我想确保用户在使用旧版浏览器(如IE6)时会看到一个很大的警告.如果他们还没有使用Chrome浏览器或其他HTML5兼容浏览器,我还想显示"建议".

我不想使用用户代理测试.

  • 是否有一个特定的功能列表,我应该测试,以确定用户是否使用IE6?
  • 是否有特定的功能列表,我应该测试以确定用户是否使用相当合规的HTML5浏览器(Chrome,Safari,IE9等)进行浏览

javascript jquery html5 feature-detection modernizr

4
推荐指数
1
解决办法
2278
查看次数

4
推荐指数
1
解决办法
1880
查看次数

哪种特征检测算法最容易学习?

我围绕着特征检测器算法.我研究了我的选项:SIFT,SURF,BRISK,FREAK等.所有这些选项在基础数学方面看起来都相当复杂.相反,我想一步一步,因此我正在寻找一种简单的方法,例如,它不需要像SURF一样好.您建议学习和实施哪种算法?

algorithm computer-vision surf sift feature-detection

4
推荐指数
1
解决办法
3955
查看次数

如何检测CSS自定义属性?

有没有办法检测浏览器是否支持CSS自定义属性(例如color: var(--primary))?

我需要编写一个脚本,在不支持自定义属性的浏览器中行为略有不同,但我找不到任何记录的Modernizr测试,也没有任何关于访问自定义属性的Javascript接口的信息.

将不胜感激任何建议!

javascript css feature-detection modernizr css-variables

4
推荐指数
1
解决办法
1991
查看次数

在 OpenCV 中使用 inRange() 检测范围内的颜色

我正在用 OpenCV 编写一个用于月球陨石坑检测的 C++ 程序,它似乎只能准确地检测到一小部分陨石坑。我对这种方法的策略是首先将图像转换为 HSV,然后用于inRange()捕捉一系列值中的颜色以产生阈值,然后对其进行高斯模糊并用于HoughCircles()检测圆圈。

我不完全理解的一件事是,当我inRange()在颜色周围设置低阈值和高阈值时,它根本不会返回任何内容。只是一个黑色的图像。它仅在我将低阈值设置为时才有效,Scalar(0,0,0)但我认为这会使其有些不准确。有什么我不明白的吗?我的测试图像如下。

月球表面 在此处输入图片说明

这是我用来测试此图像的代码:

#include <cstdio>
#include <iostream>

#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/features2d/features2d.hpp"

using namespace std;
using namespace cv;

int main(int argc, char** argv) {
    // using namespace cv;

    printf("%s\n", argv[1]);
    Mat src=imread(argv[1]);

    if (!src.data) {
        std::cout << "ERROR:\topening image" <<std::endl;
        return -1;
    }

    // converts the image to hsv so that circle detection is more accurate
    Mat hsv_image;
    cvtColor(src, hsv_image, COLOR_BGR2HSV);
    // high …
Run Code Online (Sandbox Code Playgroud)

c++ opencv feature-detection hough-transform

4
推荐指数
1
解决办法
6990
查看次数

如何特征检测浏览器是否支持动态 ES6 模块加载?

背景

JavaScript ES6 规范支持模块导入,ES6 模块

静态导入使用起来很明显,并且已经有很好的浏览器支持,但动态导入仍然落后
因此,您的代码很可能使用静态模块(当这些模块不受支持时,代码甚至不会执行),但浏览器可能会错过对动态导入的支持。因此,检测动态加载是否有效(在尝试实际加载代码之前)可能很有用。而作为浏览器检测是令人难以接受的,当然我想使用功能检测。

用例可能是显示错误,回退到某些其他数据/默认/加载算法,为开发人员提供在模块中动态加载(例如以惰性模式样式的数据)的优势,同时允许回退以传递直接数据等。基本上,可以使用特征检测的所有常见用例。

问题

现在,当动态模块被导入时,import('/modules/my-module.js')显然会尝试只检测函数是否存在,如下所示:

// this code does NOT work
if (import) {
    console.log("dynamic import supported")
}
Run Code Online (Sandbox Code Playgroud)

我想,对于每个(?)其他函数,这都可以工作,但问题似乎是:import分别是ECMAScript 中 保留关键字,现在显然也用于指示静态导入,它不是真正的功能。正如 MDN 所说,它是“类函数”。

尝试

import()导致语法错误,所以这不是真的可用,并import("")导致拒绝的承诺,这可能有用,但看起来真的很黑/像一种解决方法。此外,它需要一个异步上下文(await等)仅用于特征检测,这不是很好。
typeeof import也直接失败,导致语法错误,因为关键字(“unexpected token: keyword 'import'”)。

那么,可靠地检测浏览器是否支持动态ES6 模块的最佳方法是什么?

编辑:正如我看到的一些答案,请注意,该解决方案当然应该尽可能普遍可用,ieeg CSP可能会阻止使用evalPWA 并且在 PWA 中,您不应假设您始终在线,因此只需尝试一些随意的请求文件可能会导致错误的结果。

javascript module feature-detection ecmascript-6 es6-modules

4
推荐指数
2
解决办法
1580
查看次数

肤色检测

我使用以下算法来检测肤色,但它在不同的光照条件下不能很好地工作.任何人都可以提供任何建议,如何改进它或建议更好的方法

R > 95 AND G > 40 AND B > 20 AND
max{R, G, B} – min{R, G, B} >15 AND
|R – G| > 15 AND
R > G AND R > B
OR
R > 220 AND G > 210 AND B > 170 AND
|R – G| <= 15 AND
R > B AND G > B
Run Code Online (Sandbox Code Playgroud)

http://softexpert.wordpress.com/2007/10/17/skin-color-detection/

干杯

colors computer-vision feature-detection

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

Javacv Blob检测

我想在我的应用程序中使用一些blob检测,这是用Java编写的,因此使用JavaCV而不是OpenCV.我发现很多课程如下:

SimpleBlobDetector,CvBlobDetector,CvBlob,...但我无法找到任何教程或演示/示例代码在Java中使用这些.任何人都可以告诉我如何使用这些,因为我无法弄明白,并没有很好的文档.谢谢!

java opencv blobs feature-detection javacv

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

如何改进opencv中的特征检测

我正在开发一个项目,我需要使用opencv检测图像上的功能.

我在用

SURF detector;
SURF extractor;
BFMatcher matcher;
Run Code Online (Sandbox Code Playgroud)

用于检测,提取和匹配点.它适用于某些图像,但在其他图像上失败.

例如,系统在此映像上失败:

在此输入图像描述

显然,此图像具有一些纹理,并且特征检测器应检测它们,但未检测到任何特征,因此不会生成匹配.

如何改进此功能检测?

我可以使用任何图像处理技术吗?

我可以使用哪种其他探测器来帮助解决这个问题?

c++ opencv image-processing feature-extraction feature-detection

3
推荐指数
1
解决办法
2985
查看次数

在Python中使用CV2填充圆检测?

我试图检测这样的图像中的所有圆圈.

我有很多不同的图像,但是在所有圆圈中都是黑色(或几乎是黑色)并且尺寸相同(+/-几个像素).我相信每张图片中只有2943个圆圈.这些条件永远不变.我可能无法控制图像中圆圈的大小(半径通常在15-45像素之间 - 上面提供的示例图像的半径为20-21像素).

我需要能够尽可能准确和精确地检测这些圆的中心的确切位置(如果可能的话,半径也是如此).

我尝试使用该cv2.HoughCircles函数来执行此操作,但结果非常不一致且不可靠.这是我使用的代码:

from pylab import *
import sys, cv2

filename = sys.argv[1];
img = cv2.imread(filename,0);
cimg = cv2.cvtColor(img,cv2.COLOR_GRAY2BGR);
circles = cv2.HoughCircles(img,cv2.cv.CV_HOUGH_GRADIENT,2,15,param1=100,param2=30,minRadius=15,maxRadius=25);
circles = np.uint16(np.around(circles));
for i in circles[0,:]:
    cv2.circle(cimg,(i[0],i[1]),i[2],(0,255,0),1);
    cv2.circle(cimg,(i[0],i[1]),2,(0,0,255),3);
cv2.imwrite('1-%s'%(filename),cimg)
print "%d circles found."%(len(circles[0]));
Run Code Online (Sandbox Code Playgroud)

结果是这个图像和这个输出:2806 circles found.

有许多虚假圈子,许多真实的圈子被遗漏/忽略.

我开始相信,HoughCircle如果我的所有圆圈在单个图像中相同,则该方法不是最佳方法,并且可能有一些更好的物体检测方法可用.

如果我可以足够严密地控制圆圈的属性,你建议我用什么来精确准确地检测数千个图像中的每个圆圈?

python geometry opencv computer-vision feature-detection

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