DMUG-Archiv 2000

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Bitmap und Farbwert umwandlungs Probleme

Hallo,

a) mask = ImportString[ExportString[tex2d, "PBM"], "PBM"];

   liefert Dir in mask die bitmap von tex2d. Die ist dann im RGB Format.
   N"utzliche Optionen wie
   ImageSize geben dann auch ungef"ahr die Gr"osse der bitmap an.
   Netterweise wird immer ein kleiner weisser Rand um die bitmap
erzeugt.
   Den beseitigt man am besten mit
   
   rowstrip = mask[[1, 1]] /. l : {{255, 255, 255} ..} :> Sequence[];
   colstrip = Transpose[Transpose[rowstrip] /.  
                l : {{255, 255, 255} ..} :> Sequence[]];

   dann kannst Du Dir das Raster[] wieder zusammen setzen. Weil der Rand
ca
   6-10 Pixel breit ist muss man ein wenig experimentieren.
b) Das kommt darauf an, z.B kanst Du einfach die ColorFunction Option in
Raster
   "andern

    gray = Import["lenna256.tif"];
    hue = gray /. GrayLevel -> Hue;
    Show[hue]
    
    und schon ist Lenna bunt. Falls man ein Rot/Gr"un Bild bevorzugt
    geht auch

    rglenna= gray /. GrayLevel -> (RGBColor[#, 1 - #^2, 0] &);

    Dann wird das Bild zwar farbig dargestellt, die Daten sind aber 
    immer noch die selben. Die Rastermatrix besteht weiterhin aus
    0,1,...,255 Grauwerten.
    F"ur eine Umwandlung in echtes RGB muss man sich mehr anstrengen.
    Weil man sowohl in der Rastermatrix (erstes Argument von Raster[])
    die Farbwerte umbauen muss als auch die ColorFunction Option
    auf RGBColor setzen. Nehmen wir mal eine
    Farbtabelle
    
     myColor[g_] /; g > 10 && g < 55 := {255, 0, 0}   
     myColor[g_] /; g >= 55 && g < 128 := {0, 255, 0}
     myColor[g_] /; g >= 128 := {0, 0, 255}
     myColor[{g_}] := myColor[g]

     und eine Funktion
     
     makeFalseColor[Graphics[Raster[mat_, box_, colorrange_, ropt___],
gropt___]] :=
       Module[{rgbmat},
         rgbmat = Developer`ToPackedArray[Map[myColor, mat, {2}]]; (*
Pixel umsetzen *)
         Graphics[
           Raster[rgbmat, box, colorrange, ColorFunction -> RGBColor],
(* neue ColorFunction *)
           gropt
          ]
        ]

      fcolor = makeFalseColor[gray];

      Show[fcolor]

      fertig ist das RGB Bild von Lenna, jetzt stehen aber echte RGB
Tripel in der Matrix.

Gruss
  Jens

     
Rivoldini Attilio wrote:
> 
> Liebe Mathematica-Freunde,
> 
> Ich habe folgende Probleme:
> 
> - wie kann man eine Mathematica Graphic nach Bitmap wandeln ohne sie vorher
> als solche abzuspeichern um sie dann wieder zu laden? (also so etwas was z.B.
> ein Graphics Objekt nach Raster Objekt umwandelt)
> 
> - wie kann man eine Graustufen Wert (Greylevel) zu einem Farbwert (Hue/RGB)
> umwandeln ? (Das Problem ist ein Graustufen Bild verschiedenen
> Bereiche farblich zu markieren)
> 
> Fuer jeden Tip ware ich dankbar
> 
> Mit freundlichen Gruessen
> 
> Tilio Rivoldini


Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html