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