opencv中使用imread()读入的图像,始终为显示为8位深度

  最近用opencv做中心线提取,保存的为16bit深度的灰度图片,但使用imread()读入的图像都是8bit的GBR图像。

造成这个问题的原因主要还是自己没有仔细阅读API函数的参数说明。

1 imread()参数说明
2   cv2.IMREAD_UNCHANGED = -1, //返回原通道原深度图像
3   cv2.IMREAD_GRAYSCALE = 0, //返回单通道(灰度),8位图像
4   cv2.IMREAD_COLOR = 1, //返回三通道,8位图像,为默认参数
5   cv2.IMREAD_ANYDEPTH = 2, //返回单通道图像。如果原图像深度为16/32 位,则返回原深度,否则转换为8位
6   cv2.IMREAD_ANYCOLOR = 4, //返回原通道,8位图像。

  所以在导入图像路径后,后一个参数要说明导入图像的类型。选择cv2.IMREAD_ANYDEPTH/2作为第二个参数,

就能够返回原来保存的图片的深度。

原文地址:https://www.cnblogs.com/pangshian/p/13744803.html