小编ali*_*ali的帖子

将曲线图案匹配到图像的边缘

我有一个目标图像,沿着它的边缘搜索曲线和一个包含曲线的模板图像.我需要实现的是在目标图像中找到模板图像中曲线的最佳匹配,并根据得分,找出是否存在匹配.这还包括旋转和调整曲线大小.目标图像可以是Canny Edge探测器的输出,如果这样可以使事情变得更容易.

我正在考虑使用OpenCV(通过使用Python或Processing/Java或者如果那些使用C来限制访问所需的函数)以使事情变得实用和有效,但是无法确定我是否可以使用任何函数(或者他们在OpenCV中的组合,可用于完成这项工作.我一直在阅读OpenCV文档并首先想到Contours可以完成这项工作,但是所有示例都显示了封闭的形状,而不是我的情况,我需要将开放曲线与边缘的一部分相匹配.

那么有没有办法通过使用OpenCV或您建议的任何已知代码或算法来做到这一点?

以下是一些图片来说明问题:

包含要搜索的曲线的模板图像

输入要搜索模板曲线并与其边缘匹配的图像;  这也可以是边缘图像,即Canny Edge检测器的输出,而不是未处理的输入图像

产生的匹配 - 包括旋转和调整大小

algorithm opencv image-processing pattern-matching computer-vision

9
推荐指数
1
解决办法
2853
查看次数

在Firefox Addon Page Script中加载JSON文件,包中的所有内容

我一直在使用Addon SDK开发一个Firefox扩展,需要加载一些存储在同一个包中的数据,作为一个单独的文件:"data.json".它需要从页面脚本加载,即使用脚本src标记包含在"panel.html"中的"loader.js".

结构是这样的:

+data
 panel.html
 panel.js
 loader.js
 data.json
 ...
+lib  
 main.js
 ...
Run Code Online (Sandbox Code Playgroud)

panel.html有:

<script type="text/javascript" src="loader.js"></script>
Run Code Online (Sandbox Code Playgroud)

最初我们将数据简单地存储到js文件中作为"data.js"并使用脚本src标签从"panel.html"中包含它并且它没有任何问题.但是,当我们向Mozilla Addon站点提交该附加组件时,这被解决为要解决的问题之一,并说我们需要使用非可执行格式,例如JSON文件,以使其更安全.

现在问题似乎是"loader.js"不允许向"data.json"发出AJAX请求.(使用JQuery $ .ajax()调用返回没有成功,给出错误代码0)所以我一直在考虑的解决方案是使用SDK的request()函数从"main.js"加载"data.json"并以某种方式将其传递给页面脚本"loader.js".但这似乎很复杂,因为据我所知,数据需要首先发送到内容脚本,然后从那里发送到页面脚本.这需要在加载页面脚本时发生!我对此感到困惑,因为我不确定我是否错过了一个更实用的解决方案,或者它是否真的像我想做的那样复杂,只需将包中的本地JSON数据加载到本地页面脚本中?

ajax firefox json firefox-addon firefox-addon-sdk

6
推荐指数
1
解决办法
1571
查看次数

Firefox Addon SDK中内容脚本中的JQuery UI

我正在使用Addon Builder开发Firefox插件.我在我的插件面板中使用JQuery UI,并且还希望从与面板绑定的内容脚本中使用它.在面板页面一切正常.在内容脚本中,JQuery似乎可以工作,但我看不到JQuery UI调用的影响,例如下面的滑块案例.

以下是我定义面板的main.js的一部分:

var panel = require("panel").Panel({
    width: 350,
    height: 400,
    contentURL: require("self").data.url("panel.html"),
    contentStyleFile: data.url("css/jquery-ui-1.8.22.custom.css"),
    contentScriptFile: [
        data.url("js/jquery-1.8.0.js"),
        data.url("js/jquery-ui-1.8.22.custom.min.js"),
        data.url("panel.js")
        ]
});
Run Code Online (Sandbox Code Playgroud)

这是触发自定义事件的调用:

panel.port.emit("loadingDataEvent", t );
Run Code Online (Sandbox Code Playgroud)

panel.js中,以下部分尝试使用JQuery和JQuery UI.JQuery调用成功完成,但尝试更新滑块对象的JQuery UI调用对任何事情都没有任何影响:

self.port.on("loadingDataEvent", function (t) {
    $("#load-counter").html("<br />Not enough data yet. Approx. " + t + " secs. to go...");
    $( "#progressbar" ).progressbar( "option", "value", (60-t)/60*100 );
    document.defaultView.postMessage('{}', '*');
});
Run Code Online (Sandbox Code Playgroud)

在我的panel.html中,我可以使用JQuery和JQueryUI,没有任何问题,通过以常规方式包含它们:

<link type="text/css" href="css/jquery-ui-1.8.22.custom.css" rel="Stylesheet" />    
<script type="text/javascript" src="js/jquery-1.8.0.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.22.custom.min.js"></script>
 ... …
Run Code Online (Sandbox Code Playgroud)

jquery jquery-ui firefox-addon firefox-addon-sdk

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