Вы должны переместить getimagedata в обратном вызове из события onload изображения.
что-то вроде:
draw: function(image) {
this.ctx.drawImage(event.target, 0, 0);
this.greyImage();
},
и установить источник после привязки события
image.onload = enyo.bind(this, "draw");
image.src = "images/image.png";
чтобы избежать гоночных условий
теперь изображения извлекаются до фактической загрузки пикселей. В результате получается пустой массив.