Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   hough transformation (https://www.delphipraxis.net/156893-hough-transformation.html)

bernhard_LA 19. Dez 2010 15:49


hough transformation
 
bin auf der Suche nach einer korrekten Implementierung der Hough Transformation für Linien in Pascal,
der Code unten liefert nicht den korrekten Accumulator Inhalt zurück




Delphi-Quellcode:
THoughResult = array of array of Integer


///
///   Hough transformation for line detection
///   r = sin(theta) * a + cos(theta) * b
///
///
procedure Hough_LineDetection ( AnalysisBitmap : TBitMap; var aHoughResult : THoughResult );
var x,y, theta : integer;
    r          : Extended;
    ImageWidth : integer;
    ImageHeight : Integer;
    max_d      : Integer;

begin


   ///  size of hough array
   ImageWidth := AnalysisBitmap.Width;
   ImageHeight:= AnalysisBitmap.Height;

   max_d := round( sqrt( ImageHeight* ImageHeight + ImageWidth * ImageWidth  ) ) ;

   SetLength(aHoughResult,360, max_d );

   // For all rows in image do :
   for y:=0 to AnalysisBitmap.Height-1 do
   begin

   // For all pixel in one row do :
   for x:=0 to AnalysisBitmap.Width-1 do
   begin

      // Is there a point there or not ?  If not, just skip the pixel ( threshold based methode ...)
      if IsPixel(x, y, AnalysisBitmap, 128 ) then
      begin
           // iterate the unknown variables :  ( r, theta )
           // loop theta -> to be able to determine the other unknown -> r
           for theta:=0 to 359 do
           begin
                r:=x*cos(theta*PI/360) + y*sin(theta*PI/360);

                // Plot the finding (theta,r) into an array.
                // Ignore negative values...
                //
                if r>=0 then Inc(aHoughResult[theta,round(r)]);
           end;
      end;
   end;
  end;


end;

Corpsman 19. Dez 2010 21:15

AW: hough transformation
 
Schau dir mal Das Hier an, evtl. hilft das weiter ..

bernhard_LA 21. Dez 2010 09:10

AW: hough transformation
 
Danke,
anhand der Testimage festgestellt, mein Akku ging auch schon korrekt :-D

bernhard_LA 28. Dez 2011 10:28

AW: hough transformation
 
fyi :

unter http://sourceforge.net/projects/houghtransforma/ gibt den ganzen code zum Download !

Für Anregungen & Verbesserungen immer Dankbar !

Corpsman 28. Dez 2011 11:08

AW: hough transformation
 
Also ich finde da nur eine "readme.txt", evtl kann ich aber auch nicht mit SourceForge umgehen ...

bernhard_LA 28. Dez 2011 11:17

AW: hough transformation
 
bitte den Code mit Tortoise SVN runterladen

svn co https://houghtransforma.svn.sourcefo...oughtransforma houghtransforma

Eine Anleitung zu TORTOISE habe ich bei meinem INDY 10 DELPHI -- bitte hier wegen den Details nachlesen



PS: DELPHI XE2 kann sogar Libs Projekte via SVN einbinden - coole feature - nur kann ich es leider im Firmennetzwerk wegen FIREWALL nicht nutzen


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz