美文网首页
opencv IMREAD_ANYDEPTH 可读取和保存任意位

opencv IMREAD_ANYDEPTH 可读取和保存任意位

作者: 谢小帅 | 来源:发表于2018-12-12 16:51 被阅读129次

因为 opencv 存储的视频是 RGB 编码的,写入时把三通道都用 depth 填充了,先把 depth 单通道分离出来

import cv2

"""
RGB三通道相同的24位depth 保存为 16位单通道
"""
lab_d = cv2.imread('lab_d.png')  # 3通道值相同
b = cv2.split(lab_d)[0]  # 只要1个通道
c = b.astype('uint16')
c *= 256
cv2.imwrite('lab_d16.png', c)

通过指定 cv2.IMREAD_ANYDEPTH 读取任意深度的图片

"""
通过指定 cv2.IMREAD_ANYDEPTH 读取16位深度的图片
cv2.imwrite 图片实际深度多少 就写成多少深度的
"""
img = cv2.imread('lab_d16.png', cv2.IMREAD_ANYDEPTH)  # 任意深度图片
print(img.shape)
print(img.dtype)  # uint16
print(img[20][20])

相关文章

网友评论

      本文标题:opencv IMREAD_ANYDEPTH 可读取和保存任意位

      本文链接:https://www.haomeiwen.com/subject/vdjphqtx.html