Ich habe eine große Anzahl von Graustufenbildern, die helle "Fasern" auf einem dunkleren Hintergrund zeigen. Ich versuche die "Menge" an Fasern zu quantifizieren. Da sie sich fast überall überlappen, wird es unmöglich sein, die Anzahl der Fasern zu zählen. Stattdessen möchte ich einfach berechnen, wie groß der Flächenanteil der weißen Fasern im Vergleich zum Gesamtbild ist (zB 55% weiß, ein anderes) eine mit weniger Fasern ist nur 43% weiß, usw.). Mit anderen Worten, ich möchte die Dichte der Fasern im Bild quantifizieren.Finden Sie "Bruchteil der hellen Pixel" im Bild (Schwellenwert?)
Beispielbilder:
hohe Dichte: https://dl.dropboxusercontent.com/u/14309718/f1.jpg
geringere Dichte: https://dl.dropboxusercontent.com/u/14309718/f2.jpg
dachte ich, einen einfache (adaptive) Schwellwertfilter den Job gut durch nur das Umwandeln des Bildes rein schwarz täte/Weiß und dann den Bruchteil der weißen Pixel zählen. Meine Antwort scheint jedoch fast vollständig und nur von dem von mir gewählten Schwellenwert abhängig zu sein. Ich habe ein paar schnelle Experimente gemacht, indem ich eine große Anzahl verschiedener Schwellenwerte genommen habe, und festgestellt, dass in allen Bildern der Anteil der weißen Pixel fast genau eine lineare Funktion des Schwellenwertes ist. Mit anderen Worten - ich kann jede gewünschte Antwort zwischen ungefähr 10% und 90% erhalten, abhängig von der gewählten Schwelle.
Dies ist offensichtlich kein guter Ansatz, da meine Ergebnisse extrem voreingenommen sind mit wie ich den Schwellenwert wählen und daher völlig nutzlos. Außerdem habe ich ungefähr 100 dieser Bilder und ich freue mich nicht darauf, die "richtige" Schwelle für alle manuell zu wählen.
Wie kann ich diese Methode verbessern?
Danke. Ich denke, dass die Unschärfe der Umrisse genau das Problem ist, das ich habe, weil die Erhöhung der Schwelle einfach darin resultiert, mehr Faser zu berücksichtigen (zB wird mehr von der verschwommenen Kante gezählt), also macht es Sinn, dass es so ist abhängig von der Schwelle. Gibt es nichts, was dieses Problem spezifisch angeht? Die Unschärfe sollte in allen Bildern sehr ähnlich sein, also vielleicht ein Algorithmus, der den Gradienten von Schwarz zu Weiß betrachtet und einen Zwischenwert als "Kante" wählt? Ich habe keine Ahnung, wie dies nur durch Brainstorming erreicht werden könnte. Ich werde in die Otsu-Schwelle schauen. –
@NickThissen: Mach dir keine Sorgen über die unscharfen Kanten, benutze einfach eine empirische Messung. Wiederholbarkeit ist wichtiger als jede Art von "Korrektheit". –