![]() |
Streifen in Bitmap finden
Hallo Leute,
ich bin in Delphi ein Neueinsteiger und muss jetzt ein Programm entwickeln wo ich nicht weiter komme :gruebel: , was folgende Aufgaben hat: Ich suche Anregungen um meine Streifen (haben unterschiedliche Grauwerte, die ich mit einem entsprechenden Programm in einen bestimmten Wert umwandeln kann) in einen Bitmap zu ermitteln und zu charakterisieren... - die Streifen (orderschiedliche Anzahl je nach Bild) sollen als Rechtecke in ein Bitmap gefunden werden quasie der höchsten, die breitesten und tiefsten Punkte sollen Maßstab für das Rechteck haben _____ |..xxx..| |xxx...| |..xx..| |xxxxx| ------- x:=Pixel Probleme sind: - die Streifen können sich überlagern oder unterbrochen sein, obwohl sie zusammen sind; sie können unterschiedlich breit und lang sein (siehe Bild) - wenn ich ein Pixel nach Spalte und später Zeile abfrage, muss das erste Pixel nicht das Höchste, Breiteste oder tiefste eines Rechteckes sein - Pixel müssen so zusammen gehören, dass sie oberhalb oder unterhalb des Pixels ist. - wenn das Programm alles durchläuft soll es feststellen ob der Pixel schon sich in einem Rechteck befindet; wenn nein soll er es als neues Rechteck speichern (quasi in ein Array mit laufender Nummer) --> Ständig aktualisieren - als weiteres sollen die Rechtecke markiert und gespeichert werden (mit ihren Koordinaten), damit ich es später mit einen Kreuzkorrelationsprogramm mit dem anderen Bild (das zeitgleich in der gleichen Ebene aufgenommen wurde) vergleichen werden kann um später die 3 Richtungskoordinaten im Raum zu errechnen und es in 3D darstellen kann ich habe es schon mit Schleifen probiert, aber meine Variante ist nicht die beste mit 4 Schleifen... Kann mir jemand Tipps geben, wie ich es umsetzen kann?! :coder2: Danke. Ariane
Code:
type coordinate = record x:Integer; y: Integer; end; type rechteck = record linksOben = coordinate; rechtsoben = coordinate; linksUnten = coordinate; rechtsUnten = coordinate; end; TForm1 = class(TForm) BildLaden: TButton; Image1: TImage; RechteckSuchen: TButton; Image2: TImage; OpenPictureDialog1: TOpenPictureDialog; Memo1: TMemo; NeuesBildSpeichern: TButton; procedure BildLadenClick(Sender: TObject); procedure SpeichernNeuesBildClick(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } x,y,r,g,b:Integer; Bildname: String; Verzeichnis: String; Bildauswahl: String; Bitmap: TBitmap; Procedure BildpunkteFinden; end; var Form1: TForm1; implementation {$R *.dfm} {--} function TForm1.BildpunkteFinden(bitmap: TBitmap): TBItmap; type PCardinalArray= ^TCardinalArray; TCardinalArray= array[0..MaxInt shr 3-1] of Cardinal; Var x,y:Integer; a,b:Integer; //überschreiben// v:Array of coordinate; ScanLine:PCardinalArray; rechteck:rechteck begin SetLength(v,100); for y:=0 to Bitmap.Height-1 do begin ScanLine:= Bitmap.ScanLine[y]; for x:=0 to Bitmap.Width-1 do if ScanLine[x]>=250 then //Grauwert später über einen Scroll bestimmen bzw. einstellen// begin rechteck.linksoben.x:=x; rechteck.linksoben.y:=y; for a:=x to Bitmap.Width-1 do begin Inc(a); //wird um eins hochgezählt if ScanLine[a]>=250 then begin rechteck.rechtsoben.x:=a; rechteck.rechtsoben.y:=y; else begin break; end; end; end; end; end; {--} |
Re: Streifen in Bitmap finden
Such dir da was aus:
![]() |
Re: Streifen in Bitmap finden
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:45 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-2025 by Thomas Breitkreuz