我的 detectFaces 函数不返回填充变量, reader.onload 不提供值。我尝试了不同的方法,但是没有用,所以我决定与您联系。专家帮助
async function detectFaces(element){
var
file = element.files[0],
faceImage=[];
if(file){
try {
var reader = new FileReader();
reader.readAsDataURL(file);
reader.onload = async function(faceImage) {
url = reader.result;
const inputImg = await faceapi.fetchImage(url)
const displaySize = { width: inputImg.width, height: inputImg.height }
//faceapi.matchDimensions(canvas, displaySize)
const detections = await faceapi.detectAllFaces(inputImg, new faceapi.TinyFaceDetectorOptions());
const resizedDetections = faceapi.resizeResults(detections, displaySize);
faceImage = await faceapi.extractFaces(inputImg, resizedDetections).then(val => {
if (val[0]){
//displayExtractedFaces(faceImage);
console.log('Detect face');
return true;
}else{
//element.value = null;
console.log('No face');
return false;
}
});
console.log(faceImage);//return second get true
return faceImage;
}
console.log(faceImage);//return first get []
return faceImage;
}catch(err) {
console.error(err);
}
}
}