6

OpenCV の Matlab、matplotlib スタイルのカラーマップを認識しています。ドキュメントでは、C++ での使用法が説明されています。cv2を使用するpythonにもそのようなオプションが存在するかどうか疑問に思っていました。私は何も見つけるためにたくさんグーグルしました。使用できる matplotlib の colormap オプションは認識していますが、cv2 がそのようなオプションを提供している場合は、matplotlib のカラーマップを opencv 画像に変換するオーバーヘッドを取り除くことができます。不器用です。私のプロジェクトにはそれが必要です。

4

4 に答える 4

11

OpenCV 2.4.11 の場合applyColorMap、Python で動作します ( 2.4.11 のドキュメントにはまだ C++ しか記載されていませんが):

import cv2
im = cv2.imread('test.jpg', cv2.IMREAD_GRAYSCALE)
imC = cv2.applyColorMap(im, cv2.COLORMAP_JET)

このスタック オーバーフローの回答も参照してください。

于 2015-09-06T19:22:36.383 に答える
2

残念ながら、まだ python API に組み込まれていないようです。しかし、modules/contrib/src/colormap.cpp の実装を見ることができます。たとえば、jetmap は単なるルックアップ テーブルであり、盗むことができます。

于 2013-02-23T17:57:10.093 に答える
1

残念ながら、OpenCV には colorMap がありませんが、作成することはできます。それほど難しくありません。

class ColorMap:
    startcolor = ()
    endcolor = ()
    startmap = 0
    endmap = 0
    colordistance = 0
    valuerange = 0
    ratios = []    

    def __init__(self, startcolor, endcolor, startmap, endmap):
        self.startcolor = np.array(startcolor)
        self.endcolor = np.array(endcolor)
        self.startmap = float(startmap)
        self.endmap = float(endmap)
        self.valuerange = float(endmap - startmap)
        self.ratios = (self.endcolor - self.startcolor) / self.valuerange

    def __getitem__(self, value):
        color = tuple(self.startcolor + (self.ratios * (value - self.startmap)))
        return (int(color[0]), int(color[1]), int(color[2]))
于 2013-02-23T20:46:25.773 に答える