| Operatoren |
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.
Zu bearbeitendes Bild.
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
| Operatoren |