我有一个表示体积的 3d 数组。每个体素保持一个向量 (k1, k2) 作为其局部主曲率。
现在,我需要通过颜色来可视化这个体积(就像下图一样)。所以我需要将其转换为 RGBA 卷。是否有任何算法可以实现从(k1,k2)到(r,g,b,a)的传递函数?谢谢!
我有一个表示体积的 3d 数组。每个体素保持一个向量 (k1, k2) 作为其局部主曲率。
现在,我需要通过颜色来可视化这个体积(就像下图一样)。所以我需要将其转换为 RGBA 卷。是否有任何算法可以实现从(k1,k2)到(r,g,b,a)的传递函数?谢谢!
我基本上从OpenCV 的教程中复制粘贴了
Visualize Optical Flow with color model
Code的解决方案:
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 通道。根据我从您的色彩空间图像中了解到的情况,您可以使用渐变的大小作为 alpha 的值。为此,您必须做的更改是将幅度添加为 BGR 图像中的第四个通道。