我有一个图像,我想从中获得张量。
某些图像已经在前端服务器上,而其他图像将由服务器提供
答案 0 :(得分:1)
为此,需要使用fromPixels
如果图像已经显示在html页面中 您可以考虑使用querySelector首先获取图片,然后可以使用fromPixels
html
<img id="my-image" src="mydata.jpg">
js
const image = document.querySelector("#my-image")
const t = tf.fromPixels(image)
如果该图像不在html页面中,则可以使用构造函数Image创建它,然后将其作为参数传递给fromPixels
const im = new Image()
im.src = "url-of-the-image"
document.body.appendChild(im)
im.onload = () => {
const a = tf.fromPixels(im, 4)
a.print()
console.log(a.shape)
}
onload在将图像转换为张量之前,请确保图像已完成下载。
如果图像URL和提供前端页面的URL不同,则在创建张量时将出现cross-origin问题。如果服务器使用允许前端检索该图像的访问控制来为图像提供服务,则设置图像的crossOrigin
属性将解决此问题,否则将无法采取任何措施来从该张量获取张量图片。
const im = new Image()
im.crossOrigin = "anonymous";
im.src = "https://i.imgur.com/lVlPvCB.gif"
document.body.appendChild(im)
im.onload = () => {
const a = tf.fromPixels(im, 4)
a.print()
console.log(a.shape)
}
<html>
<head>
<!-- Load TensorFlow.js -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/tensorflow/0.12.4/tf.js"> </script>
</head>
<body>
</body>
</html>