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

Zweifache Segmentierung von Objekten

 

Tanjaa
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 05.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2014, 09:53     Titel: Zweifache Segmentierung von Objekten
  Antworten mit Zitat      
Hallo zusammen,

ich bin ein ziemlicher Neuling in Sachen Matlab Programmierung und hänge momentan an einem Problem fest. Ich habe ein Bild (siehe Anhang) mit drei erkennbaren Graustufen (hell, mittel, dunkel=Kreise in dem Fall) und möchte nun in zwei verschiedenen Schritten nacheinander rausfinden wieviel Prozent der Gesamtfläche des Bildes einmal der helle Teil und einmal der dunkle Teil ausmacht. D.h. konkret:

1. soll der Schwellwert für die Binarisierung so sein, dass alles was hell ist weiss wird und der Rest schwarz.
2. soll danach der Schwellwert so gewählt werden, dass alles was dunkel ist schwarz wird und alles andere hell.

Wenn ich den ganz normalen graythresh Befehl anwende, bekomme ich die Werte für Nummer 1 raus.
Code:
level = graythresh(Graustufenbild)
       Schwarzweissbild = im2bw(Graustufenbild, level);

Wie genau bekomme ich jetzt aber die Werte für Nummer 2 auch noch raus? Kann man den graythresh Befehl auf nur bestimmte Histogramm Bereiche anwenden? Oder gibt es generell elegantere Lösungen? (Den Schwellwert am Histogramm ablesen wäre natürlich eine Möglichkeit, allerdings ist das auf Dauer sehr mühsam, weshalb ich es gerne automatisiert hätte.

Vielen Dank schonmal für eure Hilfe!

Beispiel.jpg
 Beschreibung:

Download
 Dateiname:  Beispiel.jpg
 Dateigröße:  50.19 KB
 Heruntergeladen:  570 mal
Private Nachricht senden Benutzer-Profile anzeigen


Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 05.09.2014, 10:42     Titel:
  Antworten mit Zitat      
Grundsätzlich brauchst du immer ein verlässliches a-priori-wissen, um diese Schwellwerte einzustellen.

D.h. ich würde mir von einer Auswahl von Bildern die beiden nötigen Schwellwerte jeweils ermitteln und dann über diese den Mittelwert bilden.
Evt. kannst du auch mit einem Prozentsatz der Gesamthelligkeit arbeiten.

Das Umwandeln in ein SW-Bild sollte aber zur Berechnung, wie viel % hell, mittel, dunkel sind, nicht nötig sein.

Da reicht das Historgramm, in welchem du die Häufigkeiten zwischen 0 bis 1.Schwellwert, 1. bis 2.Schwellwert und 2.Schwellwert bis 255 addierst die % auf 100 bestimmst.
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Tanjaa
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 05.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2014, 10:50     Titel:
  Antworten mit Zitat      
Mmmartina hat Folgendes geschrieben:
Grundsätzlich brauchst du immer ein verlässliches a-priori-wissen, um diese Schwellwerte einzustellen.

D.h. ich würde mir von einer Auswahl von Bildern die beiden nötigen Schwellwerte jeweils ermitteln und dann über diese den Mittelwert bilden.
Evt. kannst du auch mit einem Prozentsatz der Gesamthelligkeit arbeiten.

Das Umwandeln in ein SW-Bild sollte aber zur Berechnung, wie viel % hell, mittel, dunkel sind, nicht nötig sein.

Da reicht das Historgramm, in welchem du die Häufigkeiten zwischen 0 bis 1.Schwellwert, 1. bis 2.Schwellwert und 2.Schwellwert bis 255 addierst die % auf 100 bestimmst.


Danke erstmal für die schnelle Antwort. Auf die Idee mit den Häufigkeiten aufsummieren bin ich gar nicht gekommen, klingt allerdings sinnvoll. Mein Problem ist aber ja trotzdem noch dieser Schritt "die beiden nötigen Schwellwerte jeweils ermitteln". Wie genau kann ich dieser ermitteln? Rein aus dem Histogramm ablesen finde ich sehr ungenau. Und wenn ich wie schon beschrieben den Otsu Algorithmus über die graythresh Funktion anwende bekomme ich nur den einen Schwellwert zwischen hell- und mittelgrau.
Private Nachricht senden Benutzer-Profile anzeigen
 
Mmmartina
Forum-Meister

Forum-Meister


Beiträge: 745
Anmeldedatum: 30.10.12
Wohnort: hier
Version: R2020a
     Beitrag Verfasst am: 05.09.2014, 12:11     Titel:
  Antworten mit Zitat      
Ah, ok, das mit dem Otsu Verfahren hatte ich vorhin überlesen.

Das wird aber doch auch für multithreashold angewand?
http://www.mathworks.de/de/help/images/ref/multithresh.html
_________________

LG
Martina

"Wenn wir bedenken, daß wir alle verrückt sind, ist das Leben erklärt." (Mark Twain))
Private Nachricht senden Benutzer-Profile anzeigen
 
Tanjaa
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 05.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2014, 12:41     Titel:
  Antworten mit Zitat      
Mmmartina hat Folgendes geschrieben:
Ah, ok, das mit dem Otsu Verfahren hatte ich vorhin überlesen.

Das wird aber doch auch für multithreashold angewand?
http://www.mathworks.de/de/help/images/ref/multithresh.html


Ich glaube mit der Funktion bekomme ich auch nicht genau das hin was ich möchte. Aus dem Ursprungsbild sollen letztendlich zwei Bilder werden, die so in etwas wie im Anhang aussehen.

P.S.: Darf auch ein anderes Verfahren sind (muss nicht Otsu sein).

1.jpg
 Beschreibung:

Download
 Dateiname:  1.jpg
 Dateigröße:  22.97 KB
 Heruntergeladen:  613 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Tanjaa
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 05.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 05.09.2014, 12:45     Titel:
  Antworten mit Zitat      


2.jpg
 Beschreibung:

Download
 Dateiname:  2.jpg
 Dateigröße:  70.84 KB
 Heruntergeladen:  588 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
AlexHall
Forum-Anfänger

Forum-Anfänger



Beiträge: 20
Anmeldedatum: 17.04.14
Wohnort: FFB
Version: ---
     Beitrag Verfasst am: 06.09.2014, 18:09     Titel:
  Antworten mit Zitat      
Hallo Tanjaa,

kannst Du Dir bitte nochmals die Mühe machen, mir das genau erklären was du mit dem/den Bildern auswerten willst.
Die Helligkeitsverteilung bekommst Du ja mit dem Histogramm heraus.
Für die drei unterschiedlichen Grauwerte muss man je eine Schwellwertanalyse machen. Ein schwellwert, ein Binärbild.

Alternative mit ImageJ ein Profilplot erstellen.

Gruß
Private Nachricht senden Benutzer-Profile anzeigen
 
Tanjaa
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 05.09.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.09.2014, 18:40     Titel:
  Antworten mit Zitat      
Hallo AlexHall,

ich möchte das Bild im Prinzip zweimal auswerten. In zwei getrennten Durchläufen möchte ich einmal den prozentualen Flächenanteil der sehr hellen Flächen (im Bild diese Ellipsen) und im zweiten Durchlauf den prozentualen Anteil der sehr dunklen Flächen (diese runden Kreise im Bild) berechnen.
Im Prinzip brauche ich dafür zwei Schwellenwerte. Ich weiß aber nicht, wie ich diese automatisiert rausbekomme. Wenn ganz normal über graythresh der Schwellenwert bestimmt wird, bekomme ich nur die Trennung zwischen den hellen Flächen und dem Rest raus, was ja auch schonmal gut ist. Wie kann ich aber den anderen Schwellenwert unabhängig von allem anderen noch rausbekommen? Also im Prinzip würde sowas wie graythresh in einem bestimmten Bereich des Histgrams funktionieren (vll. im Grauwertbereich von 0 bis 150), aber ich habe sowas bisher noch nicht gefunden.

Ich hoffe es würde einigermaßen klar was ich erreichen will.
Danke für eure Hilfe bisher!
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: 08.09.2014, 10:14     Titel:
  Antworten mit Zitat      
Moin,

für jeden anderen Bereich kannst du die Werte indizieren:

Code:
I(I>0 & I<150)=0


Grüße - Hubertus
Private Nachricht senden Benutzer-Profile anzeigen
 
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.