我使用的是基于javascript的opencv(请参阅:https://github.com/mtschirs/js-objectdetect)它与使用canvas和html5的实时视频完美配合。
当我尝试使用动态保存的图像进行检测时,它会失败,但如果我对图像进行硬编码,它会起作用。
以下(静态图像):
<img id="image" src="download.png"></img>
工作正常,但使用
var dataURL = $("#canvas")[0].toDataURL("image/png");
$("#image").attr('src', dataURL);
或者使用ajax调用将图像保存到服务器上并返回url路径
$.ajax({
type: "POST",
url: "saveImage.php",
data: {
img: dataURL
}
}).done(function(o) {
$("#image").attr('src', o);
});
两者都失败了。它们都显示了适当的图像。
检测功能是
$("#image").objectdetect(..., function(faces) { ... }
执行,但返回数组长度0,除非我使用静态图像
让我的一位同事解决了这个问题。计算图像时未加载图像。
jQuery.ajaxSetup({
async : false
});
我最初尝试过$(element).load(function(){..})似乎不起作用,但这似乎是ajax的时间问题。