近期做项目涉及到了16bit的图像处理。为了便于调试,需要对过程中的图像进行无损保存。
比如,在操作一个容量为200M的图像后,使用imwrite对该图像保存后,发现图像容量变为100M了!这个问题,原来是图片格式惹得祸。其实有些图片格式是自带压缩的,比如jpg格式,而bmp格式的图片是不带任何压缩,这就是每种图片的特点,如果对这些知识点不清楚的话,很容易踩坑!平时我们操作的图像大小大多数都以KB为单位,所以经过一番“隐形压缩”后我们很难发现图片大小变小了,但是,当我们操作大图的时候,这种压缩效果一下子就看出来了。
那么如果我们在使用imwrite保存图片时想提高保存图片的质量,该如何操作?
要改变保存的图片的质量,关键在于imwrite函数的第三个参数。
先看imwrite函数原型:
CV_EXPORTS_W bool imwrite( const String& filename, InputArray img, const std::vector