首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >createImage() vs createImg() vs p5中的loadImage()。在ml5中使用哪种方法加载图像数组?

createImage() vs createImg() vs p5中的loadImage()。在ml5中使用哪种方法加载图像数组?
EN

Stack Overflow用户
提问于 2019-01-04 09:34:15
回答 1查看 837关注 0票数 0

我正在尝试将ml5中关于图像样式转换(https://ml5js.org/docs/style-transfer-image-example)的示例与解析图像URL的JSON的p5.js示例拼凑在一起,并将它们添加到一个数组中以显示为图像。我走进了死胡同,因为我认为我没有完全理解p5在数组中存储图像的方式,也没有完全理解createImg()、createImage()和loadImage()之间的区别(应该使用哪一个!)

我们的目标是使用Bing图像API从搜索中返回URLS列表(此部分工作正常),并通过预先训练的模型运行这些图像(此部分仅在本地图像上使用时工作良好)。我无法理解的是将两者结合在一起。任何建议或建议(这可能吗??!)非常感谢。

我已经尝试将图像加载到一个数组中,并在draw()函数中迭代该数组。当我需要对图像进行寻址以便实际应用样式转换模型时,就会出现问题。当我尝试引用除了draw()以外的任何地方时,我的数组似乎是空的。我确信我的想法是错误的。

代码语言:javascript
复制
var imageData;
let imgArray = [];

var w = (window.innerWidth)/3;
var h = (window.innerHeight)/4;
var index = 0;
var xPos = 0;
var yPos = 0;
var indexMax = 3;

let style;
let resultImg;

function preload() {
  loadData();
}

function loadData(){
  var url = api + search + subscriptionKey;
  loadJSON(url, gotData);
}

function gotData(data) {
  imageData = data;

  for (var i=0; i < indexMax; i++){
      _url = imageData.value[i].contentUrl;
      imgArray.push(loadImage(_url));

  }

function displayImages(){
  if (index < 3){
      index++;
    } else {
      index = 0;
    };

function setup() {
  createCanvas(1200, 800).parent('canvasContainer');

  var button = select('#display');
  button.mousePressed(displayImages);

  var transferBtn = select('#transferBtn');
  transferBtn.mousePressed(transferImages);

  //create style method
  style = ml5.styleTransfer('/model', modelLoaded);

}

function draw() {
  image(imgArray[index], xPos, yPos, w, h);

}

//ml5 stuff 
function modelLoaded() {
  if (style.ready){
   select('#status').html('Model Loaded');
    //style.transfer(gotResult);
  }
}

function transferImages(){
  select('#status').html('applying style transfer');

  style.transfer(tempImg, function(err, result){
    createImg(result.src);
  });

 select('#status').html('done');
}

我试图(不成功地)从imgArray创建一个"tempImg“,试图弄清楚这个createImage需要到哪里去,但是还没有让它工作。我启用了CORS,所以我不认为这是问题所在,但我得到了以下错误。请帮助我理解如何以不同的方式思考这个问题。

EN

回答 1

Stack Overflow用户

发布于 2019-12-18 09:47:59

您应该使用loadImage而不是createImg

代码语言:javascript
复制
style.transfer(tempImg, function(err, result){
    p5CompatibleImage = loadImage(result.src);
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54032098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档