【问题标题】:Python and OpenCV: convert 16 bit image to gray imagePython 和 OpenCV:将 16 位图像转换为灰度图像
【发布时间】:2018-02-19 21:48:14
【问题描述】:

我有一个 16 位图像,我想将其转换为灰色。

对于 8 位图像,它适用于:

img = cv2.imread('test.png')
gray = cv2.cvtColor(gray, cv2.COLOR_BGR2GRAY)

stackoverflow 中的人们写道,OpenCV 不能很好地处理超过 8 位的图像?

有人知道将我的 16 位 .png 图像转换为灰色的可能性吗?

【问题讨论】:

  • 你必须想一想它用这个 16 位表示的是什么……它是深度图像吗?是热像吗?它只是一个花哨的灰度吗?如果你只想要一个灰色图像,你总是可以使用normalize(img, dst, 0,255, NORM_MINMAX, CV_8U)....此外,根据功能,opencv 可能接受 16 位......所以这取决于图像是什么以及你想用它做什么跨度>
  • 我想测量灰度深度图像中的像素强度(单色激光测量)。并且转换后必须是16bit,因为它必须非常准确。
  • 你试过这个COLOR_BGR5652GRAY 。我想你会得到更多的想法here
  • 我试过 'COLOR_BGR5652GRAY' 并得到 cv2.error: /home/...: error: (-215) scn == 2 && depth == CV_8U in function cvtColor
  • 你是说你已经有了灰度图,不需要转换,标准化即可。虽然,如果你想要 8 位的,你会丢失信息。试试img.astype(np.uint8),如果img类型是np.uint16,它应该可以工作。

标签: python opencv


【解决方案1】:

它适用于 img.astype(np.uint16)
并且首先检查文档是一个很好的提示!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    • 2012-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-16
    • 2021-08-24
    相关资源
    最近更新 更多