|
|
Zweifache Segmentierung von Objekten |
|
Tanjaa |
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 05.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.09.2014, 09:53
Titel: Zweifache Segmentierung von Objekten
|
|
|
|
|
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.
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!
Beschreibung: |
|
Download |
Dateiname: |
Beispiel.jpg |
Dateigröße: |
50.19 KB |
Heruntergeladen: |
570 mal |
|
|
|
|
|
Mmmartina |
Forum-Meister
|
|
Beiträge: 745
|
|
|
|
Anmeldedatum: 30.10.12
|
|
|
|
Wohnort: hier
|
|
|
|
Version: R2020a
|
|
|
|
|
|
Verfasst am: 05.09.2014, 10:42
Titel:
|
|
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))
|
|
|
Tanjaa |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 05.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.09.2014, 10:50
Titel:
|
|
|
|
|
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.
|
|
|
Mmmartina |
Forum-Meister
|
|
Beiträge: 745
|
|
|
|
Anmeldedatum: 30.10.12
|
|
|
|
Wohnort: hier
|
|
|
|
Version: R2020a
|
|
|
|
|
|
Verfasst am: 05.09.2014, 12:11
Titel:
|
|
|
|
Tanjaa |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 05.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.09.2014, 12:41
Titel:
|
|
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).
Beschreibung: |
|
Download |
Dateiname: |
1.jpg |
Dateigröße: |
22.97 KB |
Heruntergeladen: |
613 mal |
|
|
|
Tanjaa |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 05.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 05.09.2014, 12:45
Titel:
|
|
Beschreibung: |
|
Download |
Dateiname: |
2.jpg |
Dateigröße: |
70.84 KB |
Heruntergeladen: |
588 mal |
|
|
|
AlexHall |
Forum-Anfänger
|
|
Beiträge: 20
|
|
|
|
Anmeldedatum: 17.04.14
|
|
|
|
Wohnort: FFB
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.09.2014, 18:09
Titel:
|
|
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ß
|
|
|
Tanjaa |
Themenstarter
Forum-Newbie
|
|
Beiträge: 6
|
|
|
|
Anmeldedatum: 05.09.14
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 06.09.2014, 18:40
Titel:
|
|
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!
|
|
|
Hubertus |
Forum-Meister
|
|
Beiträge: 1.034
|
|
|
|
Anmeldedatum: 08.01.09
|
|
|
|
Wohnort: Hamburg
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.09.2014, 10:14
Titel:
|
|
Moin,
für jeden anderen Bereich kannst du die Werte indizieren:
Grüße - Hubertus
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|