2016-04-07 20 views
2

nicht angezeigt werden. Ich bin neu in der Bildverarbeitung in R. Zu Beginn verwende ich dafür das R-Paket. Ich habe ein 260 by 134Matrix, die ich zu einem BildDas eigentliche Graustufenbild kann mit dem EBImage-Paket in R

> image1 <- as.Image(matrix1) 

mit umgewandelt Und hier ist das Bildobjekt Zusammenfassung

> image1 
    colorMode : Grayscale 
    storage.mode : double 
    dim   : 260 134 
    frames.total : 1 
    frames.render: 1 

imageData(object)[1:5,1:6] 
    [,1] [,2] [,3] [,4] [,5] [,6] 
[1,] 0 0 0 0 0 0 
[2,] 0 0 0 0 0 0 
[3,] 0 0 0 0 0 0 
[4,] 0 0 0 0 0 0 
[5,] 0 0 0 0 0 0 

Ein Wert größer als Null für eine bestimmte Zelle in dem image Objekt sieht wie folgt aus :

> imageData(image1)[9,2] 
[1] 3686.308 

ich verwende die display Funktion im EBImage Paket dann das Bild zu betrachten welches aus den Matrixdaten aufgebaut ist.

Allerdings bekomme ich ein Binärbild, d. H. Nur schwarze und weiße Pixel. Ich habe es unten gezeigt. Meine Daten bestehen nicht nur aus 0 und 1. Die Hintergrundwerte sind Null, aber die Regionen mit dem tatsächlichen Bildmuster haben Werte über 1. Wie zeige ich das Bild mit Graustufen an und verwende die Funktionen in diesem Paket? Hatte jemand ein ähnliches Problem? Ich konnte auch keinen Parameter finden, um einen Gradient zu spezifizieren.

enter image description here

Antwort

2

Der Grund, warum das Bild nur als Schwarz-Weiß macht, ist, weil die display Funktionswerte im Bereich erwartet [0, 1]. Werte über 1 werden abgeschnitten und effektiv als 1 (weiß) angezeigt.

Um Ihre Daten richtig zu visualisieren, müssen Sie zunächst die Pixelintensitätswerte auf den Bereich [0, 1] skalieren. Dies kann mit Hilfe der normalize Funktion durchgeführt werden:

+0

Das funktioniert perfekt! – novicegeek