Передача HTMLImageElement в функцию tf.fromPixels () - PullRequest
0 голосов
/ 10 февраля 2019

Я работаю над расширением Chrome.Задача состоит в том, чтобы классифицировать изображения на веб-странице.Я настроил свою модель, я постоянно получаю сообщение об ошибке при преобразовании изображения в тензор, прежде чем делать прогноз.Я получаю все изображения, используя document.getElementsByTagName('img').Это возвращает объект.Затем я использую tensor = tf.fromPixels(image[0]), чтобы получить тензор.

Он говорит:

Ошибка в обработчике события для runtime.onMessage: Ошибка: пиксели, передаваемые в tf.fromPixels (), должны бытьлибо HTMLVideoElement, HTMLImageElement, HTMLCanvasElement или ImageData, но был Object в pre_process () в

Пожалуйста, помогите.

РЕДАКТИРОВАТЬ: Мой код:

//to load images
function load_imgs(debug) {
    //for onload images of a webpage
    if(debug == 'static'){
      imgs = document.getElementsByTagName('img');
      console.log('imgs type after get bytag', typeof imgs);
      var imgSrcs = [];

      for (var i = 0; i < imgs.length; i++) {
          imgSrcs.push(imgs[i]);
      }
      console.log('imgSrcs type:', typeof imgSrcs);

      return imgSrcs;
    }
} 

Передача в фоновый режим. Сценарий как:

//send request to background script,takes image elem ref as input
function back_request(elem_ref){

    console.log('from back_request ' + typeof elem_ref);
    console.log("back_request : ", elem_ref);

    chrome.runtime.sendMessage({
        get_predict: "predict",
        img: elem_ref
    },function (response) {
        console.log(response.prediction_model);
    });
}

Это фоновый прослушиватель сценариев для сообщения

//message listner for the prediction
chrome.runtime.onMessage.addListener(
    function (request, sender, sendResponse) {
         console.log(sender.tab ?
             "from a content script:" + sender.tab.url :
             "from the extension");
         if (request.get_predict == "predict") {
             to_predict = request.img;
             console.log('from receive request ', to_predict);
             tensor = pre_process(to_predict); //this generates an error, since i am using tf.fromPixels() method to convert it to a tensor to make a prediction
             ans = predict_str(model, tensor);
             sendResponse({
                 prediction_model: 'Processing'
             });
         }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...