【发布时间】:2021-04-21 01:00:13
【问题描述】:
我正在寻找在 Python 中将 12 位 (0-4096) 灰度图像转换为 3 通道 8 位彩色图像以便将其传递到卷积神经网络方面的建议或最佳实践.
使用 8 位 RGB,我基本上有 24 位颜色,所以我认为没有理由在转换中丢失数据,尽管大多数其他帖子建议简单地将像素值除以 16 以将其压缩为 8 位然后以有损方式在所有三个通道上复制它。
我想出的一些想法包括创建某种渐变函数,将 12 位 uint 转换为渐变上的相应颜色,但我对 RGB 颜色空间的理解是,使用 Numpy 实现这一点会很棘手或其他此类库。
OpenCV / Scikit 等常用库是否提供此类功能?我在文档中找不到任何内容。其他想法包括使用某种中间颜色空间,例如 HSL/L*AB,但我对此知之甚少。
请注意,我最终尝试创建的是 8 位 RGB 图像,而不是 16 位 RGB 图像。只需尝试以在整个颜色范围内保留原始 12 位数据的方式对灰度图像进行着色。
希望有人能帮忙!
【问题讨论】:
-
请参阅docs.opencv.org/4.1.1/d2/de8/… 的 cv2.LUT() 将使用颜色表图像将灰度图像映射到彩色图像。
-
@fmw42 只需要 8 位输入/256 LUT 条目。 |但是我看到提到了 Python,并且使用 Numpy 进行查找非常简单:stackoverflow.com/questions/14448763/…
标签: python opencv python-imaging-library scikit-image