最近用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作为第二个参数,
就能够返回原来保存的图片的深度。