我正在使用this plugin進行照片人臉檢測。它可以工作,但是當圖片中沒有可檢測的臉部時,錯誤功能不會被調用。 「完整」功能被調用。這個jquery插件總是返回一個數組嗎?
我想,當它不能檢測到人臉,它沒有返回數組,或返回未定義的對象,或者爲null,或什麼的,所以我嘗試:
//also tried null this way
if(typeof coords[i].confidence === 'undefined') {
alert("you have little aptitude for programming.");
}
if(coords instanceof Array) {
alert("good job!!");
} else {
alert("not even close!!");
}
if(!(coords.length)) {
alert("you have a distorted perception of your own abilities.");
}
if (positionX > coords.length) {
alert(coords[i].confidence);
}
當檢測顯示人臉適當的警報,但是當沒有檢測到面部時,不顯示警報。它只是稱爲「完整」功能。
這是腳本。讓我知道我是否應該提供更多的代碼。
<script>
$(function() {
$('#try').click(function() {
var $this = $(this);
var coords = $('img').faceDetection({
complete:function(img, coords) {
$this.text('Done!');
},
error:function(img, code, message) {
$this.text('error!');
alert('Error: '+message);
}
});
for (var i = 0; i < coords.length; i++) {
//Here is where I have been putting those conditional statements.
//This part, which appends a bordered div (#face) to the div containing the face pic, works fine.
$('<div>', {
'class':'face',
'id':'face',
'css': {
'position': 'absolute',
'left': coords[i].positionX +'px',
'top': coords[i].positionY +'px',
'width': coords[i].width +'px',
'height': coords[i].height +'px'
}
})
.appendTo('#content');
}
});
return false;
});
</script>
<a href="#" id="try">TRY IT NOW!</a>
<div id="content">
<img src="pic.jpg" id="myPicture"/>
</div>
無論成功還是失敗,都可能調用'complete',類似於jQuery中'ajax'方法的完整選項? – 2013-04-10 03:33:55
您是否嘗試過在控制檯中記錄'coords'並查看沒有識別到人臉時的價值? – JCOC611 2013-04-10 03:34:51