gpt4 book ai didi

javascript - tf.browser.fromPixels 从 img 元素返回全零

转载 作者:行者123 更新时间:2023-11-28 00:34:24 24 4
gpt4 key购买 nike

我正在使用 tensorflowjs做一些前端图像分类。我正在尝试使用 tf.browser.fromPixels将 img 元素转换为张量。但是,我得到的形状全为零 [160, 160, 3] .我正在使用 FileReader api 通过 <input type="file"> 从文件系统读取图像元素。下面是一些代码:

function getFiles(event) {
const files = event.target.files;
let tempStore = [];
for (let i = 0; i < files.length; ++i) {
tempStore.push(files[i]);
}
return tempStore;
}
const imageElement = document.getElementById("upload");
imageElement.addEventListener("change", event => {
const files = getFiles(event);
Promise.all(files.map(loadImg)).then(d => {
console.log("All done !!!", d);
});
});
const loadImg = imgFile => {
return new Promise((resolve, reject) => {
let reader = new FileReader();
let imgEl = document.createElement("img");
reader.onload = async e => {
imgEl.src = e.target.result;
imgEl.setAttribute("width", 160);
imgEl.setAttribute("height", 160);
document.body.append(imgEl);
const fromPixels = tf.browser.fromPixels(imgEl);
resolve(fromPixels);
};
reader.onerror = reject;
reader.readAsDataURL(imgFile);
});
};

图像被正确地附加到文档正文中。imageElement 的形式为: <img src="data:image/jpeg;base64,....." width=160 height=160>

最佳答案

img 标签尚未加载时,您正在从图像创建张量。这是要走的路

  imgEl.src = e.target.result;
imgEl.setAttribute("width", 160);
imgEl.setAttribute("height", 160);
document.body.append(imgEl);
im.onload = () => {
// create the tensor after the image has loaded
const fromPixels = tf.browser.fromPixels(imgEl);
resolve(fromPixels);
}

关于javascript - tf.browser.fromPixels 从 img 元素返回全零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57080655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com