Thema: Delphi Bildanalyse/-vergleich

Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#22

AW: Bildanalyse/-vergleich

  Alt 9. Dez 2011, 22:24
kante:=spinedit2.value;
gehört nicht in die Prozedur, hier soll kantenlaenge verwendet werden, also im Aufruf spinedit2.value mitgeben.
Die Quadratemalfuntion ist nicht rekursiv (selbstaufrufend wie floodfill) zu implementieren.
Der Code der zu implementieren ist kommt nur in Case 3:
Quadrate kann man malen mit
MoveTo und 4 * LineTo
oder
Image3.Canvas.Brush.Style := bsClear;
Image3.Canvas.Rectangle(L,O,R,U);

nach dem Quadratemalen wird floodfill aufgerufen (kann auch innerhalb von quadratmalen aufgerufen werden)
fillcolor ist clRed, oldColor ist die Grundfarbe des Bildes also clBlack, diese Funktion ruft sich solange selbst wieder auf bis der gefundene Punkt nicht mehr oldColor entspricht, als wenn der Rahmen von Quadratemalen erreicht wurde.


Einen Teil in der Aufgabe hatten wir übersehen, weder im StringGrid noch in der Malroutine sollen Benachbarte Punkte nach Definition Kantenlänge erfasst werden. Dies bedeutet dass schon beim Scanvorgang Image3 miteinbezogen werden muss und nur wenn pixels[i,j] in Bild 3 schwarz ist dieser Punkt erfasst wird (gleiche Rangstufe wie der Schwellenwert), es muss dann wenn ein Punkt gefunden wurde auch direkt das Quadrat in Image3 gemalt und gefüllt werden, damit ein Beispielsweise direkt benachbarter Punkt bein nächsten Vergleich ausgeschlossen wird.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat