为什么使用cv2.imwrite()保存时图像大小会增加

时间:2019-09-16 13:04:43

标签: opencv matplotlib image-processing scipy

我对输入图像进行了一些处理,并使用cv2.imwrite方法保存了最终图像,输入图像大小为1.2MB(3120 * 4160像素),保存的图像大小为2.8MB(3111 * 4151),是输入图像大小的两倍以上。

经过一些研究,我发现opencv以16位速率保存图像,因此我使用scipy.misc.imsave保存图像,这解决了我的问题,结果大小减小到1.1MB,但是颜色图改变了,原始图像和处理后的图像颜色不同。

任何人都可以阐明为什么会发生这种情况吗?为什么在cv2写方法下图像尺寸几乎翻倍,为什么我使用scipy写方法会丢失颜色?

from matplotlib import pyplot
import cv2
from scipy.misc import imsave
'''
read the input image here (jpg format) and image segmentation code here
'''
pyplot.imsave('py_result.jpg', final_img) #this one doubles the image size and also changes the color, why is there a size bump?   
cv2.imwrite('cv2_result.jpg', final_img) #this one almost doubles the image size
imsave('scipy_result.jpg', final_img) #this one doesnot bump the image size but changes the color in output image

以下是参考图片:

这是输入图像。

inputimage

使用scipy.imsave()保存的已处理图像,您可以看到输入图像中的蓝色文本已变为红色。

scipy written image

0 个答案:

没有答案