如何将向量(k1,k2)转换为体积中的RGBA(r,g,b,a)?

How to convert vector (k1, k2) to RGBA (r, g, b, a) in volume?

我有一个代表体积的 3d 数组。每个体素都保持一个向量(k1,k2)作为它的局部主曲率。

现在,我需要用颜色可视化这个体积(如下图所示)。所以我需要将它转换为 RGBA 体积。是否有任何算法可以实现从(k1,k2)到(r,g,b,a)的传递函数?谢谢!

我基本上是复制粘贴
的解决方案
来自 OpenCV's tutorial 的代码:

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()

唯一缺少的是您没有指定计算方式的 alpha 通道。根据我从你的颜色图像 space 中了解到的情况,你可以使用渐变的大小作为 alpha 的值。 您必须为此做的更改是将幅度添加为 BGR 图像中的第四个通道。