0

ボリュームを表す 3D 配列があります。すべてのボクセルは、ベクトル (k1, k2) をローカル主曲率として保持します。

次に、このボリュームを色で視覚化する必要があります (下の図のように)。したがって、RGBA ボリュームに変換する必要があります。(k1、k2) から (r、g、b、a) への伝達関数を実装するアルゴリズムはありますか? ありがとう!

ここに画像の説明を入力

4

1 に答える 1

1

基本的に、 OpenCV のチュートリアルから
、カラー モデル
コードを使用してオプティカル フローを視覚化するためのソリューションをコピーして貼り付けました。

import cv2
import numpy as np


# Use Hue, Saturation, Value colour model 
hsv = np.zeros(im1.shape, dtype=np.uint8)
hsv[..., 1] = 255

mag, ang = cv2.cartToPolar(k1, k2)
hsv[..., 0] = ang * 180 / np.pi / 2
hsv[..., 2] = cv2.normalize(mag, None, 0, 255, cv2.NORM_MINMAX)
bgr = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)
cv2.imshow("colored flow", bgr)
cv2.waitKey(0)
cv2.destroyAllWindows()

欠けているのは、計算方法を指定していないアルファ チャネルだけです。あなたの色空間の画像から私が理解できることから、グラデーションの大きさをアルファの値として使用できます。これを行うために必要な変更は、BGR イメージの 4 番目のチャネルとしてマグニチュードを追加することです。

于 2021-05-12T06:47:02.170 に答える