使用Python测试多个Pi相机选项

13

It’使用出色的raspistill命令行实用程序或PiCamera 蟒蛇库,使用Pi相机模块轻松拍摄照片。我想尝试一下EX(曝光)和AWB(自动白平衡)可用的不同设置,并观察它们在不同环境中的表现。

Pi Camera选项测试结果手动尝试不同的设置似乎需要大量工作,因此我决定编写一些脚本,使用所有可用选项来拍摄一系列照片。然后,我可以快速查看照片,并查看在特定环境中最适合的照片。

每当我需要快速检查调整选项是否值得考虑时,都可以使用脚本。

选项1:使用Raspistill的Python脚本

Raspistill是Raspbian附带的命令行实用程序,可让您轻松控制Pi相机。使用EX和AWB选项的示例命令如下所示:

raspistill -o myphoto.jpg -ex night -awb shade

这些ex和awb选项可以设置为以下值:

-ex

off,auto,night,nightpreview,backlight,spotlight,sports
snow,beach,verylong,fixedfps,antishake,fireworks

-awb

off,auto,sun,cloud,shade,tungsten,fluorescent,
incandescent,flash,horizon

这是使用raspistill拍摄图像序列的脚本的链接: pi_camera_options1.py

您可以使用以下命令直接下载到您的Pi:

wget //bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/camera/pi_camera_options1.py

可以使用以下命令运行:

蟒蛇 pi_camera_options1.py

要么 :

蟒蛇3 pi_camera_options1.py

试用所有组合所需的照片总数将超过100张。我没有’想要这么多的照片,因此仅定义了一些选项“list_ex” and “list_awb” lists. You and add 其他 values if required.

选项2:使用PiCamera库的Python脚本

除了使用命令行之外,您还可以使用出色的PiCamera 蟒蛇库拍摄照片。这是使用PiCamera拍摄图像序列的脚本的链接: pi_camera_options2.py

您可以使用以下命令直接下载到您的Pi:

wget //bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/camera/pi_camera_options2.py

可以使用以下命令运行:

蟒蛇 pi_camera_options2.py

要么 :

蟒蛇3 pi_camera_options2.py

与raspistill脚本一样,您可以编辑此示例并将其他值添加到“list_ex” and “list_awb” lists.

PiCamera使用较旧的AWB值集。这意味着它使用“sunlight” and “cloudy”而Raspistill使用“sun” and “cloudy”.

PiCamera版本的优势在于,它在照片中嵌入了文字,因此很清楚使用了哪些设置来创建它。

结果

由这两个脚本创建的图像将与该脚本保存在同一目录中,因此您可能希望在子目录中运行它们以将测试文件保持在一起。

我的测试是通过在学习窗外拍摄照片来进行的。我使用免费的图像实用工具XnView创建了一个“Contact Sheet”带有一组照片:

Pi Camera选项测试结果

如您所见,图像之间存在很大差异。在这种情况下,较好的图像之一是“自动”设置(左上角),但EX所在的云层稍微清晰一些“auto” and AWB was “horizon”. I suspect “horizon”对于场景的上半部比下半部更亮的图像更好。

有趣的是“cloud”设置(左下方)没有’t do as good a job 上 the 云s compared to the “horizon”设置(右下方)。

相机选项测试-云 相机选项测试-地平线
在此示例中,默认设置很好。当您处理更具挑战性的场景时,可能会证明这些脚本更有用,例如较低的光照水平,自然摄影或定格动画。

分享。

13条留言

  1. 神奇而有用!
    我很高兴google将我带到您的网站。这是信息最丰富的网站之一‘practical’ implementation –灌木丛无人打扰。不断更新ðŸ〜‰

    @Arun:唐’懒学python。我精通C,C ++,C#,Python在我的清单中排名第二,并且在短短两天内就学到了很多东西。
    如果您仍然想要,谷歌“python到c#转换器”..

    问候..

  2. 嗨,非常感谢您的Python脚本。我一直在将Pi Cam放在太阳下运行,以查看什么设置最适合今晚我’将其与Pi凸轮抵靠月球一起运行ðŸ〜‰

    我发现一件事有点混乱:“other” awb and ex settings still left me with 上ly 6 images. Might be clear to 其他 people but if you unremark settings you have to remark the 其他 settings because the script uses the last values for awb and ex which it reads from the script.

    现在,我有130张图像ðŸ〜‰

    非常感谢 !!

  3. One 其他 suggestion: I am a big fan of the tool feh which I run 上 both Ubuntu and the Pi. After installing the latest version you can sort the images in a directory by making date. So no more worries about filenames and wrong sorting.

    我更喜欢在此命令行中使用它

    feh -d -F -Smtime

    这样,它将在左上角显示文件名,全屏显示图像,并按创建时间/日期进行排序。浏览所有图像均带有向右(和向左)箭头

    问候,

  4. 感谢您的脚本。它很好地忽略了设置和选项。您可以添加的一件事是使用Python Imaging Library而不是XnView制作照片联系表。这样,脚本将成为一体。甚至可以通过设置为每个图像添加文字叠加层。只是一个想法,但感谢您的帖子。

  5. 可以将这些图片放置在网格中,并将各种选项写在列上方和行旁边。这样,很容易确定哪个图片是哪个…. 上 another note, i’我试图弄清楚如何将raspistill返回的图像存储在一个变量中,这样我就可以快速找到一个像素的颜色,您看起来像是可以帮助我朝正确方向发展的伙伴。感谢您提供简洁明了的编码,它确实对像我这样的初学者有所帮助….

  6. 嘿,
    在python脚本中,’是否已将命令调用到终端中了?是否可以仅使用python来实现曝光模式更改。录制视频时还能使用这些曝光模式吗?
    例如:
    使用picamera.PiCamera()作为相机:
    相机.EXPOSURE_MODES =运动

    • 当我写这篇文章时,Picamera 蟒蛇库没有’不存在,所以我使用了Raspberry Pi Foundation提供的命令行实用程序。最好查看Picamera文档,因为该文档包含所有库功能和示例。

发表评论

该网站使用Akismet减少垃圾邮件。 了解如何处理您的评论数据.