2017-01-12 2 views
-2

Die LabelMe Datenbank kann von http://www.cs.toronto.edu/~norouzi/research/mlh/data/LabelMe_gist.mat heruntergeladen werdenWie LabelMe Datenbank mit Matlab

Allerdings gibt es eine weitere Verbindung http://labelme.csail.mit.edu/Release3.0/ Die Webseite hat eine Toolbox sichtbar zu machen, aber ich konnte eine Datenbank zum Herunterladen nicht finden. Also, ich fragte mich, ob ich die LabelMe_gist.mat verwenden könnte, die die folgenden Felder hat. Das Feld names enthält die Beschriftungen für die Bilder und img enthält möglicherweise die Bilder. Wie zeige ich die Trainings- und Testbilder an? Ich habe versucht,

im = imread (img) Fehler mit imread> parse_inputs (Linie 486) Der Dateiname oder URL-Argument muss ein String sein.

Fehler in imread (Zeile 336) [Dateiname, fmt_s, extraArgs, msg] = parse_inputs (varargin {:});

aber das ist sicher nicht der richtige Weg. Bitte helfen

load LabelMe_gist.mat; 
load('LabelMe_gist.mat', 'img') 

picture

+0

'imread' ist für Bilder aus einer Datei zu lesen. Da Sie bereits ein Bild (4-D uint8) haben, versuchen Sie es mit "imshow". – Florian

+0

@FLorian: Ich weiß nicht, welche Argumente übergeben werden müssen, wenn 'imshow() 'für diesen Datensatz verwendet wird. Die Information für das Feld 'img' besagt, dass es vom Typ 4 -D ist. Wie kann ein Bild 4-dimensional sein? – SKM

Antwort

0

Da wir keine Ahnung von Ihrem Beitrag, welche Art von Daten hatten dies ging ich weiter und es heruntergeladen. Es stellt sich heraus, img ist eine Sammlung von 22019 Bildern der Größe 32x32 (RGB). Deshalb ist img eine 32 x 32 x 3 x 22019 Variable. Daher ist das i -te Bild zugänglich ist über imshow(img(:,:,:,i));

Hier ist eine Animation von allen von ihnen (drücken Sie Strg + C zu unterbrechen):

for iImage = 1:size(img,4) 
    figure(1);clf; 
    imshow(img(:,:,:,iImage)); 
    drawnow; 
end 
+0

Vielen Dank für die Antwort. Die Ausgabebilder sind sehr klein, es kann kaum gesehen werden. Also habe ich versucht, das Originalbild um das 5-fache für das zehnte Bild zu vergrößern (sagen wir mal): I = (img (:,:,:, 10)); J = Bildgröße (I, 5); imshow (J) 'aber die Ausgabe ist sehr verschwommen. Kann etwas getan werden, so dass das Display groß sein kann. – SKM

+0

Nicht wirklich, die Bilder sind 32 mal 32 Pixel, das ist alles, was Sie haben. Ich denke, standardmäßig "Imresize" wird bikubische Interpolation standardmäßig verwenden (die für extreme Vergrößerung verschwommen aussehen kann), möchten Sie vielleicht J = imresize (I, 5, 'nächste'); 'verwenden, um eine realistischere Ansicht zu erhalten von dem, was tatsächlich in deinen Daten ist. – Florian