硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1239|回复: 2
收起左侧

[技术讨论] OV5640颜色错误,像热成像一样发红

[复制链接]

2

主题

7

回帖

13

积分

新手上路

积分
13
发表于 2024-8-10 15:13:57 | 显示全部楼层 |阅读模式
我在使用STM32F407调试OV5640,移植的野火的代码,但是颜色一直不对,如下图,像开了热成像一样,图像上有很多红点并且一直在闪烁,并且有很多颜色断层

QQ图片20240810150934.jpg
修改0x4300这个寄存器,发现配置为0x6F时,图像大致正常,如下图
QQ图片20240810150938.jpg
只不过是屏幕的颜色格式和摄像头的颜色格式对不上,没有颜色断层了
有没有人遇到过类似的问题?
QQ图片20240810151021.png
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117512
QQ
发表于 2024-8-10 16:09:27 | 显示全部楼层
帮顶下,感觉还是摄像头相关寄存器配置问题。
回复

使用道具 举报

2

主题

7

回帖

13

积分

新手上路

积分
13
 楼主| 发表于 2024-8-10 16:11:11 | 显示全部楼层
0x4300=0x6F时的图像看起来没有问题,其实还是有问题的,我把0x6F的图像格式转换成了0x61的格式(这个格式屏幕可以正常显示)
发现还是一样的问题
QQ图片20240810160702.jpg
[C] 纯文本查看 复制代码
//  {g[2:0],b[4:0]}, {r[4:0],g[5:3]}
		for (int i = 0; i < 240*180; i++)
		{
			uint16_t temp = 0;
			uint8_t r = ((img_buf[i] & 0x00F8) >> 3);
			uint8_t g = ((img_buf[i] & 0xE000) >> 13) | ((img_buf[i] & 0x0007) << 3);
			uint8_t b = ((img_buf[i] & 0x1F00) >> 8);
			temp = (r << 11) | (g << 5) | (b);
			img_buf2[i] = temp;
		}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-8-12 02:51 , Processed in 0.040998 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表