【问题标题】:How to convert vector (k1, k2) to RGBA (r, g, b, a) in volume?如何将矢量(k1,k2)转换为体积中的RGBA(r,g,b,a)?
【发布时间】:2021-05-12 02:41:33
【问题描述】:

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

现在,我需要通过颜色来可视化这个体积(就像下图一样)。所以我需要将其转换为 RGBA 卷。是否有任何算法可以实现从(k1,k2)到(r,g,b,a)的传递函数?谢谢!

【问题讨论】:

标签: python numpy visualization rgba volume-rendering


【解决方案1】:

我基本上是复制粘贴解决方案
Visualize Optical Flow with color model
来自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 通道。根据我从您的色彩空间图像中了解到的情况,您可以使用渐变的大小作为 alpha 的值。 为此,您必须做的更改是将幅度添加为 BGR 图像中的第四个通道。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 2011-05-30
    • 2011-02-01
    • 2018-10-15
    • 2022-11-07
    • 1970-01-01
    • 2021-12-21
    相关资源
    最近更新 更多