通过python进程shell使用RaspiStill使用JPG编码拍照。我得到一个超过两兆的文件。当我将质量降低到50%时,所拍摄照片的文件大小仅下降约200K,或者低于10%。当我使用原始的2 meg +文件并通过Paint.Net保存它,质量设置为85%时,它会将文件大小降低到300k,或者几乎降低90%。
我做错了什么,或者RaspiStill中的编码器有什么问题?
下面是我用来拍照的命令行: pi @ raspberrypi~ /开发/测试$ raspistill -n -t 100 -q 50 -e jpg -o fullsizejpgsethalfquality.jpg
产生的文件大小:2052kb 通过Paint.Net以85%的质量重新保存相同的文件:319kb
思想?
答案 0 :(得分:9)
这一次在Raspberry Pi论坛上进行了大量的实验和争论解决。
以下是整个讨论的链接:http://www.raspberrypi.org/forum/viewtopic.php?f=43&t=73174&p=527300#p527300
我最终解决方案的统计数据如下:我将分辨率降低到640x480,这样就产生了170k的文件大小。然后我将质量降低到10,这相当于大多数应用程序的质量值85,并且它将文件大小降低到40k。最后,我关闭了缩略图,该缩略图存储为位图,最终文件大小为20k ...这就是你对jpeg大小和质量设置的期望。这是我使用的最后一个命令:
pi @ raspberrypi~ /开发/测试$ raspistill -w 640 -h 480 -n -t 100 -q 10 -e jpg -th none -o vgasize10nothumb.jpg
主要问题源于Raspistill如何解释质量价值。它使用它作为对数 - esk值,其中从100一直到10几乎没有变化。质量从10-1下降到悬崖。一个相当疯狂的发展决定恕我直言。
正如我所说,对于大多数图形应用而言,10的值与85的质量大致相同,这使得文件非常小,具有良好的表观质量。并且首先要使用Jpeg。
答案 1 :(得分:1)
我在-q
( - 质量)参数方面也存在一些问题,并没有很好地解决这个问题,但是,为什么不尝试--width
和{ {1}}?这应该给你一个解决方案,看看:
--height
我添加了 raspistill --width 1280 --height 960 --quality 100 -o fullsizejpgsethalfquality3.jpg
,但我猜你可以忽略它。如果我列出了diretory的内容,你会看到3个不同的图片。前两个用lkept全分辨率并使用-q参数:
--quality
看一下尺寸,它的照片要轻5倍。