2016-10-10 9 views
0

Ich habe mehrere Bilder (ihre Anzahl könnte im Laufe der Zeit erhöhen) und ihre entsprechenden annotierten Bilder - nennen wir sie Bildmasken.speichern mehrere Bilder effizient in Python-Datenstruktur

Ich mag die Originalbilder in Graustufen und die kommentierten Masken Binäre Bilder (B & W) konvertieren und dann die Grauwert in einer auf dem B & W Pixelkoordinaten basierend Pandas Datenrahmen/CSV-Datei zu speichern.

Das bedeutet also eine Menge hin und her wechseln das Originalbild und die Binärbilder.

Ich möchte nicht jedes Mal die Bilder aus der Datei lesen, weil es sehr zeitaufwendig sein könnte.

Irgendwelche Vorschläge, welche Datenstruktur für die Speicherung von mehreren Arten von Bildern in Python verwendet werden sollte?

Antwort

1

PIL und Pillow sind für diese Art von Arbeit nur marginal nützlich. Der Grundalgorithmus, der zum "Finden und Zählen" von Objekten verwendet wird, sieht wie folgt aus: 1. Umwandlung in Graustufen 2. Schwellenwertbildung (entweder automatisch über die Otsu-Methode o.ä. oder durch manuelle Einstellung des Schwellenwerts) Werte) 3. Konturerkennung 4. Maskierung und Objektzählung anhand Ihrer Konturen.

Sie können einfach eine Mat (von ganzen Zahlen, Mat1i) würde Datenstruktur passt in diesem Szenario.

+0

Was ist mit Wörterbüchern, um die Bilder zu speichern, Images.BW [0: n], Images.Grayscale [0: n]. Um die Pixelwerte zu speichern (was wird verdammt viel von ihnen tun) ist besser Mat als Dataframe zu verwenden? – Roxanne

+0

ja! Wörterbücher wären auch eine bessere Option. Sie können auch eine Array-basierte Datenstruktur verwenden. @Roxanne – khushbu

0

Ich habe mehrere Listen und list.append() zum Speichern des Bildes verwendet.

Um die weißen Bereiche in den schwarzen & weißen Bildern zu finden, benutzte ich cv2.findNonZero().

Verwandte Themen