如何在树莓派中设置相机拍摄黑白图像?

时间:2015-05-05 21:58:38

标签: python camera raspberry-pi camera-calibration

有没有办法在覆盆子pi中设置相机以拍摄黑白图像?,就像在picamera库中使用一些命令/代码一样?

由于我需要比较一些不同图像的相对光强度,我担心当物体处于不同的光照下时相机本身就会进行一些调整,所以即使我将图像转换为黑白图像也是如此稍后对象的“真实”黑白图像将会丢失。

感谢

编辑:基本上我需要做的是在摄像机位置固定时捕捉一些物体的图像,但是光源的位置会改变(因此照明方向也会改变)。然后,对于图像上的每个点,我将需要比较不同图像的相对光强度。只要光强度或所有图像的“亮度”都相对于相同的比例,那就没关系,但我不确定是否是这种情况。我确定当图像“固有地”更暗或更亮时,相机会自动调整像对比度这样的东西。

3 个答案:

答案 0 :(得分:4)

要获得黑白图像(单色,灰度),只需配置相机即可。创建一个“takeashot.py”(sudo nano takeashot.py):

import picamera                  # import files

camera = picamera.PiCamera()     # initialize camera
camera.color_effects = (128,128) # turn camera to black and white
camera.capture('image1.jpg')     # take a shot

执行:sudo python takeashot.py

就是这样

您可以在10. API - picamera.camera Module

了解详情

color_effects下,您会看到“使图像黑白将值设置为(128,128)。”

答案 1 :(得分:3)

在这种情况下,“黑白图像”是什么意思?任何东西都没有“真实的”黑白图像。您的传感器对光有一些频率响应,而这些传感器会为您提供图像中的值。

对于Raspberry Pi相机和几乎所有标准相机,有红色,绿色和蓝色传感器,它们的响应以各自的频率为中心。这些传感器也以某种模式布局。如果它对您特别重要, 相机只有一个单一传感器类型的阵列,对更广泛的频率敏感,但这些可能会相当昂贵。

可以从带有picamera的raspi相机获取原始图像数据。这不是文档中描述的“原始”格式,由format 控制,这实际上只是编码前处理过的数据。 bayer选项将返回实际的原始数据。但是,这意味着您必须自己处理处理。例如,该数据中的每个像素都来自不同的颜色传感器,需要根据传感器响应进行调整。

最简单的方法是正常使用相机,因为以这种方式测量光强度不会很高。为了获得准确的结果,您需要进行校准,并且您需要具体说明数据的用途,如何照亮所有内容以及您真正感兴趣的数据。

答案 2 :(得分:1)

在python之前的v4l:

v4l2-ctl -c color_effects=1

自:

v4l2-ctl -L
User Controls
...
                 color_effects (menu)   : min=0 max=15 default=0 value=1
                            0: None
                            1: Black & White
                            2: Sepia
...

Nota:我已成功完成此操作,而我的相机正在运行!