gray_inside
— Berechnung des niedrigstmöglichen Grauwerts auf einem beliebigen
Weg zum Bildrand für jeden Bildpunkt.
gray_inside
„sucht“ sich für jeden Bildpunkt den
günstigsten Weg zum Bildrand, d.h. den Weg, auf dem möglichst
niedrige Grauwerte zu überwinden sind. Die Differenz des
Grauwertes des jeweiligen Punktes zum maximalen Grauwert auf diesem
Weg wird für jeden Punkt berechnet und als Ergebnisbild geliefert.
Helle Bildbereiche im Ergebnisbild bedeuten also, dass diese
Bereiche (die im Originalbild typischerweise eher dunkel sind) von
helleren Bereichen eingeschlossen sind. Dunkle bzw. schwarze
Bereiche im Ergebnisbild bedeuten, dass zwischen ihnen und dem
Bildrand nur geringfügig hellere bzw. dunklere Bildbereiche
existieren (was nicht heißen muss, dass sie nur von dunkleren
Bereichen umgeben sind; es reicht bereits ein kleiner dunkler
„Ausgang“). Der Wert 0 (schwarz) im Ergebnisbild bedeutet, dass
entweder gleich helle oder dunklere Grauwerte auf dem Weg zum
Bildrand auftreten.
Für die Durchführung wird zunächst die Operation
watersheds
benutzt, die eine Segmentation des Bildes in
Basins und Watersheds durchführt. Wenn man sich das zu
bearbeitende Bild als Grauwertgebirge vorstellt, bilden die Basins
die Täler und Becken (mit niedrigeren Grauwerten) , die
„Gebirgskämme“ sind die Watersheds. Zunächst werden die
Watersheds jeweils benachbarten Regionen zugeteilt, so dass nur noch
Basins vorhanden sind. Der Rand des Definitionsbereiches des
Ausgangsbildes wird nun nach dem kleinsten Grauwert durchsucht und
die Region(Basin) in der er liegt mit den Ergebniswerten belegt.
Wenn der kleinste Grauwert am echten Bildrand liegt, können die
Ergebniswerte sofort aus der Differenz zwischen Punkt-Grauwert und
diesem berechnet werden. Liegt der gefundene kleinste Grauwert
jedoch innerhalb des Bildes, muss der bereits existierende
Ergebniswert aus der Nachbarregion besorgt werden um mit seiner
Hilfe die neuen Ergebniswerte zu berechnen. Die Suche nach der
Nachbarregion erfolgt mit 8-er Nachbarschaft. Nach Abzug der
gefundenen Region vom Suchbereich erfolgt ein neuer Durchgang u.s.w.
So wird Basin für Basin das Bild von außen nach innen
„geschält“.
Wie auch bei watersheds
empfiehlt es sich, vor
gray_inside
eine Glättung (z.B. binomial_filter
oder gauss_filter
) des Bildes vorzunehmen, um die Entstehung
zu vieler Einzelregionen im watersheds-Algorithmus (und dadurch sehr
lange Laufzeiten) zu vermeiden.
Beachten Sie, dass Filteroperatoren eventuell unerwartete Resultate ausgeben, wenn ein Bild mit einer reduzierten Domäne als Input übergeben wird. Weitere Informationen können im Kapitel Filter gefunden werden.
Image
(input_object) (multichannel-)image(-array) →
object (byte)
Zu bearbeitendes Bild.
ImageDist
(output_object) (multichannel-)image(-array) →
object (int2)
Ergebnisbild.
read_image(Image,'fabrik') gauss_filter (Image,GaussImage,11) gray_inside(GaussImage,ImageOut) dev_display(ImageOut)
gray_inside
liefert immer den Wert 2 (H_MSG_TRUE).
binomial_filter
,
gauss_filter
,
smooth_image
,
mean_image
,
median_image
select_shape
,
area_center
,
count_obj
Foundation