有没有办法在覆盆子pi中设置相机以拍摄黑白图像?,就像在picamera库中使用一些命令/代码一样?
由于我需要比较一些不同图像的相对光强度,我担心当物体处于不同的光照下时相机本身就会进行一些调整,所以即使我将图像转换为黑白图像也是如此稍后对象的“真实”黑白图像将会丢失。
感谢
编辑:基本上我需要做的是在摄像机位置固定时捕捉一些物体的图像,但是光源的位置会改变(因此照明方向也会改变)。然后,对于图像上的每个点,我将需要比较不同图像的相对光强度。只要光强度或所有图像的“亮度”都相对于相同的比例,那就没关系,但我不确定是否是这种情况。我确定当图像“固有地”更暗或更亮时,相机会自动调整像对比度这样的东西。
答案 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)
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:我已成功完成此操作,而我的相机正在运行!