【发布时间】:2020-09-30 13:21:49
【问题描述】:
在 OpenCV 中,当我将 JPG 图像(每通道 8 位)转换为灰度时,使用 cv.cvtColor(img, cv.COLOR_BGR2GRAY) 或直接将其读取为灰度:cv.imread(path + 'image.JPG', cv.IMREAD_GRAYSCALE),灰度图像只有 8 位图像。
有没有办法获得 16 位灰度图像?
我知道我可以对灰度图像的值进行平方并得到 16 位,但我想要一个真正的 16 位颜色信息(不是放大的 8 位)。
【问题讨论】:
-
您是否尝试在图像上应用
np.uint16()? -
@JenilDave,我尝试在颜色转换之前添加
img = np.uint16(img),灰度输出仍然只有8位颜色信息。 -
不确定您真正希望的是什么,因为从 BGR 到灰度的转换无论如何都是相当随意/粗略的,因此恕我直言,从一开始就没有太多的准确性。其他人可能有不同的想法,我很高兴得到纠正,如果有人有更好的想法,请去说。
-
您可以将图像缩放到您需要的范围(例如,而不是 0...255 到 65535 by pixel/255*65535),但您不会从中获得任何更好的数据信息...跨度>