0

您好,这是我正在使用的部分代码,

                b=(byte2&0xF8)<<8;  //F8=11111000   5
                g=(byte2&0xFC)<<3;  //FC=11111100   6
                r=(byte2&0xF8)>>3;  //F8=11111000   5
                grisColor=(r)|(g)|(b);

它使用 RGB 565 的 OV7670 相机拍摄照片,我必须修改什么才能拍摄只有红色分量的照片?

非常感谢提前

4

3 回答 3

2

只需注释掉最后一行的结尾:

grisColor=(r);//|(g)|(b);

和/或设置gb为零。

于 2013-06-26T17:04:24.360 回答
1

一旦你有了 5 位红色,下一个问题是,你想要灰度输出(例如单个八位字节),还是只填充红色(绿色和蓝色零)的 RGB565,还是 RGB565 灰度,还是 RGB24, ...?

于 2013-06-26T17:04:33.017 回答
0

我注意到您的目标是从 ov7670 获得 8 位灰度图像。
通过将 ov7670 设置为输出 yuv422 并将该数据“转换”为灰度(只需使用 Y 分量并忽略 U 和 V 分量),您将获得更好的结果。

我有一个 github 存储库,其中包含一些用于配置 ov7670 的有用功能。
查看名为 yuv422_ov7670 的寄存器列表https://github.com/ComputerNerd/ov7670-no-ram-arduino-uno/blob/master/ov7670_regs.h

于 2014-07-11T14:16:39.320 回答