![]() |
Re: Bitmap segmentieren
Hi,
ich wuerde gerne wissen wie ich ein komplettes Mitmap in ein (zwei-)dimensionalen Array einlesen kann? Danke, Daniel |
Re: Bitmap segmentieren
Moin!
Wie sieht denn das Array aus, also ein 2 dimensionales Array welchen Datentyps und vor allem: was für Informationen sollen dadrinne stehen? Bei palettenbasierten Bitmaps der Index in der Farbpalette oder direkt die RGB Werte? Oder willst du nur den Helligkeitswert jedes Pixels speichern in den Array oder vielleicht nur den Graustufenwert? Was denn? MfG Muetze1 |
Re: Bitmap segmentieren
Hallo,
hmm also die Infos habe ich zu meinem Bitmaps: Breite: 240 Pixel Höhe: 210 Pixel Horizontale und vertikale Auflösung je 96dpi Bildtiefe: 8 Das Bitmap wird in Graustufen dargestellt. Ich möchte den Farbwert an an der Stelle x,y in dem dazugeigneten Dateiformat (Byte ?) auslesen, und eventuell in einen zweidimensionalen Array einlesen um dann die Farbunterschiede von Pixel zu Pixel zu analysieren. Auf dem Bildern ist vereinfacht gesagt, in der Mitte ein schwarzer Balken dessen Position ich bestimmen möchte. Deshalb werde ich mir den Array auch eventuell sparen und die Punkte gleich miteinander vergleichen, mein Problem ist vorallem das auslesen der Farbwerte aus dem Bitmap. Vielen Dank! Daniel |
Re: Bitmap segmentieren
Schau mal in der OH nach
![]() Oder natürlich die ![]() |
Re: Bitmap segmentieren
Hi Leute, ich finde etwas mekwürdig, dass einfach Themen einem bestehenden Thema hinzugefügt werden.
Noch merkwürdiger ist es allerdings, das die zweite Frage beantwortet wird, die erste jedoch in Vergessenheit gerät. |
Re: Bitmap segmentieren
Zitat:
[edit]Mist, gestern hatte es mich doch schon gewundert :stupid: . |
Re: Bitmap segmentieren
Hey,
entschuldigung werde in Zukunft mich bessern! Ich frage jetzt noch mal hier was, zum gleichen Thema da meine Frage teils ja schon beantwortet wurde. Habe das erstmal mit canvas "gemacht", bzw. aus einem anderen Frage hier im Forum rauskopiert. Es kommmt aber immer zu einer Exception der Klasse EAccessViolation Zugriffsverletzung... in der Zeile Image1.Picture.Bitmap.Assign(BMP);
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var //Hier wird das Bild in Image1 eingelesen BMP : TBitmap; farben:array of integer; i,j,k:integer; begin BMP := TBitmap.Create; try BMP.LoadFromFile('C:\test.bmp'); Image1.Picture.Bitmap.Assign(BMP); finally BMP.Free; //Hier werden die Farbwerte ausgelesen for i:= 0 to Image1.Picture.Bitmap.Width - 1 do for j:= 0 to Image1.Picture.Bitmap.Height - 1 do begin farben[k]:=image1.canvas.pixels[i,j]; Inc(k); end; end; end; |
Re: Bitmap in Array einlesen
Delphi-Quellcode:
Hier wird kein Image eingelesen, sondern lediglich Variablen deklariert.
procedure TForm1.Button3Click(Sender: TObject);
var //Hier wird das Bild in Image1 eingelesen BMP : TBitmap; farben:array of integer; i,j,k:integer; begin // end;
Delphi-Quellcode:
Der zweite Punkt ist, bevor du die Werte ausliest, gibst du das Bitmap wieder frei!
BMP := TBitmap.Create;
try BMP.LoadFromFile('C:\test.bmp'); Image1.Picture.Bitmap.Assign(BMP); finally BMP.Free; //Hier werden die Farbwerte ausgelesen for i:= 0 to Image1.Picture.Bitmap.Width - 1 do for j:= 0 to Image1.Picture.Bitmap.Height - 1 do begin farben[k]:=image1.canvas.pixels[i,j]; Inc(k); end; end; Deine Schleife gehört in den Try - Teil deiner Procedure. |
Re: Bitmap in Array einlesen
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz