Python RaspiStill-质量/大小未匹配-文件太大

Python RaspiStill-质量/大小未匹配-文件太大,python,camera,jpeg,raspberry-pi,Python,Camera,Jpeg,Raspberry Pi,通过python进程shell使用RaspiStill拍摄带有JPG编码的图片。我收到一份超过两兆的文件。当我将质量降低到50%时,拍摄的图片的文件大小只会降低大约200K,或者减少不到10%。当我使用原始的2MEG+文件并通过Paint.Net将其质量设置为85%保存时,文件大小会下降到300k,或者几乎减少90% 我是做错了什么,还是RaspiStill中的编码器有什么问题 下面是我用来拍照的命令行: pi@raspberrypi~/Development/tests$raspistill-

通过python进程shell使用RaspiStill拍摄带有JPG编码的图片。我收到一份超过两兆的文件。当我将质量降低到50%时,拍摄的图片的文件大小只会降低大约200K,或者减少不到10%。当我使用原始的2MEG+文件并通过Paint.Net将其质量设置为85%保存时,文件大小会下降到300k,或者几乎减少90%

我是做错了什么,还是RaspiStill中的编码器有什么问题

下面是我用来拍照的命令行: pi@raspberrypi~/Development/tests$raspistill-n-t 100-q 50-e jpg-o fullsizejpsethalfquality.jpg

结果文件大小:2052kb 以85%的质量通过Paint.Net重新保存相同的文件:319kb


想法?

我对
-q
(-quality)参数也有一些问题,没有很好地理解它,但是,为什么不试试
--width
--height
?这应该给你一个解决方案,看:

 raspistill --width 1280 --height 960 --quality 100 -o fullsizejpgsethalfquality3.jpg
我添加了
--质量
,但我想您可以忽略它。如果我列出目录的内容,你会看到3张不同的图片。前两个具有lkept全分辨率并使用-q参数:

-rw-r--r-- 1 pi pi 1691812 mar 27 16:57 fullsizejpgsethalfquality.jpg
-rw-r--r-- 1 pi pi 1492051 mar 27 16:57 fullsizejpgsethalfquality2.jpg
-rw-r--r-- 1 pi pi  351976 mar 27 17:00 fullsizejpgsethalfquality3.jpg

看这个尺寸,这是一张比照片轻5倍的照片

这个问题需要在Raspberry Pi论坛上进行大量实验和讨论才能解决

以下是整个讨论的链接:

我的最终解决方案的统计数据如下:我将分辨率降低到640x480,这产生了170k的文件大小。然后我将质量降低到10,这相当于大多数应用程序的质量值为85,并且将文件大小降低到40k。最后,我关闭了缩略图,它被存储为位图,最终文件大小为20k。。。这就是您对jpeg大小和质量设置的期望。下面是我使用的最后一个命令:

pi@raspberrypi~/Development/tests$raspistill-w640-h480-n-t100-q10-e jpg-th none-o vgasize10nothumb.jpg

主要问题源于Raspistill如何解释质量价值。它使用它作为对数esk值,从100到10几乎没有变化。质量从10-1下降到了悬崖。一个相当疯狂的发展决定


正如我所说的,对于大多数图形应用程序来说,10的值与85的质量差不多,这使得一个非常小的文件具有良好的外观质量。首先,这就是使用Jpeg的意义所在

文件较小,因为图片较小。相机模块的默认图像大小为2592x1944。您的图像大小是分辨率的一半,即像素数的四分之一,这就是为什么您看到的照片大约是默认大小的25%。对于Jpeg来说,这仍然是一个非常大的文件。压缩没有达到应有的程度。我也遇到了-q参数的问题,但是如果大小很关键,那么修改分辨率是唯一的选择。默认大小为1691812字节,使用我的命令的大小为351976字节(更小的分辨率)。就尺寸而言,这减少了79%。如果大小是问题所在,因为-q参数不能像预期的那样工作,至少在我的例子中是这样。350k仍然非常大的文件?对于Jpeg,350k文件非常大。正如我所说的,当你降低分辨率时,你实际上是在制作一张更小的图片,所以文件的大小当然会更小。JPEG的神奇之处在于,您可以在不降低图片大小的情况下大幅降低文件大小,并且质量损失非常小。请尝试再次拍照,但这次请使用10的质量设置。你会明白我的意思,我也有同样的问题。您的解决方案解释了发生的情况并修复了它。我认为它应该被标记为被接受的答案(即使它是你自己的)。