在使用变量获取批处理图像的相对路径后,会读取具体图像内容,那么问题是,在读取16位uint类型时,总是展示出一半的图像,此展示图的特点是,在行与列相同的情况下,图本身的内容为一半,不会有报错提示。原因有两个:一是在读取16位unit数据后,自动转化成unit8类型的数据,即,将16位unit数据直接除以255左右;而是在读取后,系统默认是8位变量,所以只存取了一半的数据内容。以下是解决问题:
Mat srcImage;
srcImage = imread(“路径内容”, CV_LOAD_IMAGE_UNCHANGED);
imread读取图片有三种方式:
CV_LOAD_IMAGE_UNCHANGED (<0) loads the image as is (including the alpha channel if present)
CV_LOAD_IMAGE_GRAYSCALE ( 0) loads the image as an intensity one
CV_LOAD_IMAGE_COLOR (>0) loads the image in the RGB format
如果待读取的png图片是灰度图,而且是16位的,那么应该选用CV_LOAD_IMAGE_UNCHANGED,用Mat类型保存。
原文链接:https://blog.csdn.net/chenxicx1992/article/details/44784559