Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Opencv 读取并保存图像会增加图像大小_Opencv_Image Processing_Scipy_Imread - Fatal编程技术网

Opencv 读取并保存图像会增加图像大小

Opencv 读取并保存图像会增加图像大小,opencv,image-processing,scipy,imread,Opencv,Image Processing,Scipy,Imread,我使用CV2.imread加载了一个图像,并使用CV2.imwrite()和scipy.misc.imsave()保存了它。在这两种情况下,输出图像大小都会受到影响。为什么会这样 输入和输出图像都是.jpg文件类型 img = cv2.imread(img_src) scipy.misc.imsave(img, "scipy_original.jpg") cv2.imwrite("cv2_original.jpg", img) 输入文件大小为309kb cv2中的输出文件大小为690kb 以s

我使用CV2.imread加载了一个图像,并使用CV2.imwrite()和scipy.misc.imsave()保存了它。在这两种情况下,输出图像大小都会受到影响。为什么会这样

输入和输出图像都是.jpg文件类型

img = cv2.imread(img_src)
scipy.misc.imsave(img, "scipy_original.jpg")
cv2.imwrite("cv2_original.jpg", img)
输入文件大小为309kb cv2中的输出文件大小为690kb 以scipy为单位的输出文件大小为399kb


这是您想要参考的图像:

OpenCV对jpg有不同的压缩级别,从0到100。默认值为95

问题讨论了它,网站上有例子

使用如下参数保存:
cv2.imwrite(“cv2\u original.jpg”、img、[int(cv2.imwrite\u JPEG\u QUALITY)、jpg\u QUALITY])
其中
jpg\u QUALITY<95
将减小文件大小。

OpenCV对jpg有不同的压缩级别,从0到100。默认值为95

问题讨论了它,网站上有例子

使用如下参数保存:
cv2.imwrite(“cv2_original.jpg”,img,[int(cv2.imwrite_JPEG_QUALITY),jpg_QUALITY])
其中
jpg_QUALITY<95
将减小文件大小。

如果我们不指定任何内容,它将使用默认值。参考:如果我们没有指定任何内容,它将使用它的默认值。参考:但这不会改变输出图像的质量吗?压缩是如何影响图像大小的,我认为使用不同的比特率,如8位、16位,是导致图像大小增加的原因。请澄清这一点。是的,这将改变输出质量。通常更多的压缩==更少的大小==更少的质量。比特率也会影响大小,但压缩算法和压缩级别也会影响大小。我认为它们比比特率更重要,但我不确定that@Beeti:8位图像在JPEG文件中的比特率不为8。压缩会导致比特率下降,例如,每像素可以获得0.5比特。压缩质量决定了这一点。质量越低,丢失的数据越多,比特率越低。在16位图像中,开始时每像素的比特数更多,但仍然可以降低到非常低的比特率。在您的情况下,输入JPEG的质量低于输出JPEG,因此比特率较低。@CrisLuengo这是有道理的,那么openCV和scipy在编码时默认以较高的比特率保存图像?我们能用任何方法知道图像的比特率吗?谢谢你的回答。但是这不会改变输出图像的质量吗?压缩是如何影响图像大小的,我认为使用不同的比特率,如8位、16位,是导致图像大小增加的原因。请澄清这一点。是的,这将改变输出质量。通常更多的压缩==更少的大小==更少的质量。比特率也会影响大小,但压缩算法和压缩级别也会影响大小。我认为它们比比特率更重要,但我不确定that@Beeti:8位图像在JPEG文件中的比特率不为8。压缩会导致比特率下降,例如,每像素可以获得0.5比特。压缩质量决定了这一点。质量越低,丢失的数据越多,比特率越低。在16位图像中,开始时每像素的比特数更多,但仍然可以降低到非常低的比特率。在您的情况下,输入JPEG的质量低于输出JPEG,因此比特率较低。@CrisLuengo这是有道理的,那么openCV和scipy在编码时默认以较高的比特率保存图像?我们能用任何方法知道图像的比特率吗?谢谢你的回答。