node.js - ReferenceError: ImageData is not defined at MathBackendCPU.fromPixels when pass image into the function
问题描述
I got this error when my program read the .png image file and used the data as the parameter for the fromPixels() function in tensorflow.js. Why it said ImageData is not defined? Am I miss out any dependencies?
/home/R/Desktop/process_img/node_modules/deeplearn/dist/kernels/backend_cpu.js:85
if (pixels instanceof ImageData) {
^
ReferenceError: ImageData is not defined
at MathBackendCPU.fromPixels (/home/R/Desktop/process_img/node_modules/deeplearn/dist/kernels/backend_cpu.js:85:31)
at Engine.fromPixels (/home/R/Desktop/process_img/node_modules/deeplearn/dist/engine.js:287:29)
at Ops.fromPixels (/home/R/Desktop/process_img/node_modules/deeplearn/dist/ops/array_ops.js:184:41)
at (/home/R/Desktop/process_img/node_modules/deeplearn/dist/ops/operation.js:11:61
at Object.Tracking.tidy (/home/R/Desktop/process_img/node_modules/deeplearn/dist/tracking.js:34:22)
at Object.descriptor.value [as fromPixels] (/home/R/Desktop/process_img/node_modules/deeplearn/dist/ops/operation.js:11:26)
at /home/R/Desktop/process_img/index.js:29:29
at FSReqWrap.readFileAfterClose [as oncomplete] (fs.js:447:3)
Here is the code:
#!/usr/bin/node
"use strict";
const {KNNImageClassifier} = require('deeplearn-knn-image-classifier');
const _deeplearn = require('deeplearn');
const child = require('child_process');
const fs = require('fs');
const { Image } = require('canvas');
const NUM_CLASSES = 3;
const IMAGE_SIZE = 227; // Must be 227
const TOPK = 10;
var filename = 'images.png';
//console.log(img.dtype);
var knn = new KNNImageClassifier(NUM_CLASSES, TOPK);
fs.readFile(filename, function(err, squid){
if (err) throw err;
var img = new Image();
img.src = squid;
const img1 = _deeplearn.fromPixels(img);
});
p/s: Please inform me if need more information.
Thanks.
解决方案
目前 Node.js 不支持 tf.fromPixels。需要手动将图像加载到张量中。
https://groups.google.com/a/tensorflow.org/forum/#!topic/tfjs/JE8KlPwOz4g
推荐阅读
- sql-server - 在关键字“UNION”和“Top”附近调整不正确的语法
- c++ - C++一个类使用其他类
- json - 更新 COUCHBASE 中的一些文档
- ios - 在swift IOS中更改html文本中图像的宽度和高度
- r - 在 R 中,使用一个日期列如何从当前行中减去上面的 2 个点并在新列中添加结果?
- python - Flask 总是发送 post 请求
- laravel - 将 Tailwind CSS v2.0+ 安装到 Laravel 8 中可以工作,但在运行时什么也不做
- javascript - 使用 Javascript 验证我的密码时出错
- php - 在 HTML 属性中使用 PHP 变量会截断中间有空格的单词
- python - 根据指定的单词列表创建字数列