2017-06-07 2 views
1

Ich habe eine Reihe von Wärmebildern, die mit verschiedenen Arten von Farbkarten codiert sind.Wie konvertiert man zwischen verschiedenen Farbkarten auf OpenCV?

Ich möchte eine konstante Farbkarte verwenden, um die Fehlerintelligenz zu vereinfachen. Bitte führen Sie mich an, wie man das macht.

+0

Der erste Link der Google-Suche 'opencv colormap' ist http://docs.opencv.org/2.4/modules/contrib/doc/facerec/colormaps.html –

+0

Konvertieren Sie jeden codierten Rahmen mit' cv2.cvtColor in GrayScale image (img, cv2.COLOR_BGR2GRAY) '. – ZdaR

Antwort

4

Ich denke, es ist ein wenig komplizierter als das, was in den Kommentaren vorgeschlagen wird, da Sie mit Temperaturen zu tun haben. Sie müssen die Farbzuordnung auf ein Temperaturwertbild zurücksetzen und dann eine gewünschte Farbpalette mit OpenCV anwenden.

Das Zurückkehren zu Graustufen ist nicht so einfach wie das Konvertieren des Bildes von BGR in Graustufen, da Sie Farben wie dunkelrot haben, die sowohl dunkelgrau als auch dunkelblau abgebildet werden können der Skala.

Beide Bilder sind in einem anderen Maßstab (temperaturabhängig). Wenn Sie sie also an die Grauskala übergeben, hat Schwarz nicht die gleiche Temperatur wie die andere, daher ist es nicht möglich, sie direkt zu vergleichen .

Um einen korrekten Skalierungswert zu erhalten, können Sie versuchen, das obere Rechteck (das, das die Skala zeigt) zu erhalten und sie in gleiche Teile zu teilen und den Temperaturbereich mit der gleichen Anzahl von Unterteilungen zu teilen. Dies gibt Ihnen eine Farbe für jede Temperatur. Dann transformiere beide Bilder in cv::Mat doppelt und jedes Pixel hat den Temperaturwert.

Schließlich müssen Sie entscheiden, was Ihr Temperaturbereich sein wird, um die Farben für alle Bilder zu bestimmen, die Sie haben. Zum Beispiel können Sie zwischen 25 und 45 wählen. Dann normalisieren Sie die Bilder mit den Temperaturen (die mit Doppel) mit dem ausgewählten Bereich und normalisieren sie auf Graustufenbilder (0 ist 25 und 255 wird 45) und wenden die Farbkarte auf diese Bilder an.

Ich hoffe, das hilft.

0

Sie können cvtcolor zu HSV verwenden und dann den Farbton manuell ändern. Nachdem Sie den Farbton geändert haben, können Sie ihn wieder in rbg einfärben.

Verwandte Themen