WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Hough transform - Linien in einem Bild erkennen

 

ursula

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 08.04.2011, 15:31     Titel: Hough transform - Linien in einem Bild erkennen
  Antworten mit Zitat      
Hallo,
könntet ihr mir bitte weiter helfen???? versuche schon seid längerem die linien in einem bild zu erkennen, bzw deutlich als linien darzustellen, die ich dann voneinander abziehen kann. ich habs schon mit dem hough filter probiert, aber er will nicht so wie ich..... Wink
im anhang ist das bild, das ich schon etwas bearbeitet hab. die linien, die ich verdeutlichen will sind die vertikalen dickeren linien.
hoffentlich könnt ihr mir helfen.
viele grüße, ursula

linien.tif
 Beschreibung:

Download
 Dateiname:  linien.tif
 Dateigröße:  354.83 KB
 Heruntergeladen:  1449 mal


Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 09.04.2011, 12:15     Titel:
  Antworten mit Zitat      
Moin,

das Problem sind die vielen kleinen Linien, die hier stören. Aus dem RGB-Bild würde ich zunächst ein S/W-Bild machen, da keine Farbnformationen verwertbar sind. Dann Deine gesuchten Linien stärken und versuchen, die vielen kleinen Störlinien zu entfernen. Notfalls dien Bereiche auf Weiß setzen.

Es gibt sicherlich mehrere Ansätze. Hier ist einer:

Code:
I=imread('l2.tif');
figure; imshow(I);
I2=edge(I,'log',0.3,1.0);    % 0.3 Wert ändern!
figure; imshow(I2)  
I3 = bwmorph(I2, 'thin', Inf);


Eine weitere Funktion wäre "strel". Mit:
se=strel('arbitrary',[;-1 -1 -1;-1 8 -1;-1 -1 -1]);
%%% se=strel('line',3,152);
%%% se=strel('arbitrary',1/2*[1 1;-2 -2]);
%%% se=strel('arbitrary',[1 1 0;1 1 0;1 0 0]);
%%% se=strel('periodicline',2*2+1,[2 1]);
%%% se=strel('pair',[6 6]);
%%% se=strel('diamond',4);
%%% se=strel('disk',4,6);
%%% se=strel('disk',4);
%%% se=strel('rectangle',[1 1]);
%%% se=strel('square',10);
%%% se=strel('octagon',3);

Daraus müsste sich was machen lassen.
Ein schönes Wochenende

Hubertus

Edit:

Ich bin davon ausgegangen, dass es Dir um das Erkennen der Linien geht, weniger um die Hough-T. Die kannst Du nach dem Beseitigen der Störlinien immer noch ausführen.
Private Nachricht senden Benutzer-Profile anzeigen
 
aj.geissler
Forum-Guru

Forum-Guru



Beiträge: 251
Anmeldedatum: 26.11.07
Wohnort: Seeheim-Jugenheim
Version: ---
     Beitrag Verfasst am: 11.04.2011, 10:36     Titel:
  Antworten mit Zitat      
Hi,

wie mein Vorposter schon sagte: Zunächst das Bild säubern !

Jeder gesetzte Bildpunkt führt zu einem "Büschel" an Geraden, die alle durch den Bildpunkt gehen. Jede dieser Geraden hat aber eine andere Richtung. Rein theoretisch also unendlich viele Geraden im (r, phi)-Raum

Eine Linie führt also zu vielen Geradenbüscheln. Im (r, phi)-Raum gibt es dann "Häufungen", die dann ausgedünnt werden (können/müssen).

Zum besseren Verständnis einfach mal unter Wikipedia nachschauen.

Grüße
Andreas
Private Nachricht senden Benutzer-Profile anzeigen
 
Ursula

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.05.2011, 10:34     Titel:
  Antworten mit Zitat      
ok, danke für die antworten Smile ich versuche es das bild zu säubern Smile
 
Lady

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.08.2011, 15:26     Titel:
  Antworten mit Zitat      
Hey ihr,

ich sitze gerade an einem ähnlichen Problem. Ich komme allerdings nicht mit der strel Funktion klar. Kann mit jemand schreiben, wie man das "Säubern" durchführt?
Bei mir handelt es sich um ein Bild auf dem ein Krei und Querlinien zu sehen sind. Allerdings sind die Linien nicht durchgezogen sinden nur durch viele Punkte nebeneinander dargestellt.


Danke!
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 23.08.2011, 16:36     Titel:
  Antworten mit Zitat      
Moin,

unter "Säubern" versteht man z.B. ds Entfernen von Rauschen, also von Non-Informationen. Dazu kann man TP-Filter/Median-Filter, evtl. auch Filterkerne anwenden. Meist wird man erst durch vergleichende Verfahren das optimalste Ergebnis erzielen. Eine auch nicht schlechte Methode ist das Indizieren von Störpixel, in dem man diese vom bekannten Wert auf einen "nicht störenden Wert" setzt.

Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
Lady

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.08.2011, 16:43     Titel:
  Antworten mit Zitat      
Hey Hubertus,

diverse Filter habe ich schon auf das Bild angewandt (sobel z.B.). Dachte ich könnte über Morphing die Querlinien entfernen, da mich diese stören. Über Filter bekomme ich sie nicht weg. Benutzt man in dem Fall die "strel-Funktion"? Und wenn ja wie genau?

Annahme, mein Bild sei die Matrix A.
P.S. Danke fürs schnelle Antworten Wink
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 23.08.2011, 16:58     Titel:
  Antworten mit Zitat      
Ich habe mal blind ein paar Funktionen beigefügt. Schau mal, ob die überhaupt die gewünschte Wirkung zeigen.

im.doc
 Beschreibung:

Download
 Dateiname:  im.doc
 Dateigröße:  33 KB
 Heruntergeladen:  1043 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 24.08.2011, 09:57     Titel:
  Antworten mit Zitat      
Moin,

könnte vielleicht auch das helfen:

http://www.rpgroup.caltech.edu/cour.....dvancedMatlabTutorial.pdf
Private Nachricht senden Benutzer-Profile anzeigen
 
Lady

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.08.2011, 10:39     Titel:
  Antworten mit Zitat      
Guten Morgen Hubertus,

ich habe gestern alle deine Vorschläge ausprobiert. Die ersten paar liefern nur ein schwarzes, weißes oder rotes Bild (komplett). Die Filter funktionieren nicht, da die Kantenstärke des Kreises die gleiche ist, wie die Kantenstärke der Linien. Dachte vielleicht, dass man die waagerechten Linien irgendwie erfassen und dann löschen kann.
Ich schaue mir jetzt mal dein Tutorial an.
Wollte gerade noch das Bild anhängen, aber dazu muss man sich wohl erst registrieren ?

Grüßle
 
Hubertus
Forum-Meister

Forum-Meister


Beiträge: 1.034
Anmeldedatum: 08.01.09
Wohnort: Hamburg
Version: ---
     Beitrag Verfasst am: 24.08.2011, 10:57     Titel:
  Antworten mit Zitat      
Moin Lady,

es ist immer schwer, ohne Kenntnis vom Bildinhalt Lösungen anzubieten. Auf der Seite:

http://www.gomatlab.de/normalisieru.....-und-position-t19663.html

findest Du weitere Möglichkeiten, Bildteile zu entfernen.


Edit:

Ach ja, da war noch diese sehr schnelle Lösung:

Code:
I=imread(cameraman.tif');
figure; imshow(I)
x=imfreehand();  % Zu löschenden Bereich umkreisen
binary=x.createMask();
I2=I;
I2(binary)=0;
masked=I;
masked(binary)=255; % der gelöschte Bereich wird weiß
figure; imshow(masked)
Private Nachricht senden Benutzer-Profile anzeigen
 
Lady

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 24.08.2011, 12:26     Titel:
  Antworten mit Zitat      
Also lieber Hubertus,

diese letzte Lösung haut mich um. Das finde ich echt genial! Die Morphings funktionieren nicht zufriedenstellend. Echt großes Lob von mir an dich!

Grüßle
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.