OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8440|回复: 8

关于OV7670扫描方式的问题

[复制链接]

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-3-7
在线时间
0 小时
发表于 2013-3-11 11:09:05 | 显示全部楼层 |阅读模式
最近一直在做用OV7670输出640*480分辨率的图像,用战舰开发板。将OV7670的寄存器设置为{0x12,0x04},则输出VGA,RGB的格式。仅作这样修改,输出是这样的:

                    



左边是QVGA,右边是VGA。显然右边是1,2,5,6和9,a,d,e的重影。这是由于LCD是320*240的,扫描方式是从上到下,从左到右。分辨率提高到640*480后,LCD将1,2,5,6显示到奇数行,9,a,d,e显示到了偶数行。
如果再将窗口设置改变,OV7670_Window_Set(10,176,240,160),窗口由原来的240*320改为240*160,摄像头应该不会扫描到下半部分的9,a,d,e.得到图像:


纵向分辨率提高了,但是横向没有改变,图像发生畸变。按理说,如果分辨率从240*320变为480*640,LCD上只显示1,2,5,6,才对。如果窗口设置为OV7670_Window_Set(10,176,120,160),得到下图

应该是1,2,5,6充满LCD才对。
问题:为什么横向分辨率没有提高?好像摄像头有逐行扫描和隔行扫描之分,OV7670应该是逐行扫描,如果是隔行扫描,那偶数行的数据为什么没有送到fifo?

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

为了排除LCD扫描的影响,将fifo的数据直接编码BMP,存到SD卡,不经过LCD。(战舰开发板的照相机实验是从LCD的GRAM中读取像素存到SD卡)
但是SRAM太小,不能等一帧数据都存到内存,然后编码存到SD卡,只能来一行存一行。拍到下图:


因为BMP编码扫描顺序是从左到右,从下到上,而OV7670输处的扫描顺序是从上到下,从左到右,所以编码乱了。
问题:1.BMP的编码扫描顺序好像不能变,OV7670的扫描顺序能不能修改?
        原子大哥在这个帖子 http://www.openedv.com/posts/list/7161.htm#36173 提到可以,但是一直搜多不到。
        
        2.帖子里有很多问VGA输出640*480的问题,一直没有找到有明确答复的,不知道大家都是怎么实现的?

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-3-7
在线时间
0 小时
 楼主| 发表于 2013-3-11 11:26:40 | 显示全部楼层
这个帖子http://www.openedv.com/posts/list/6005.htm#29630里,骤雨龙元说共享了代码,怎么找不到啊?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-11 11:28:04 | 显示全部楼层
回复【楼主位】buaaaaub:
---------------------------------
BMP编码扫描顺序是不能变了,OV7670的输出扫描顺序我也没找到能改变的地方。
不过,你可以将OV7670的输出(640*480时)保存到外部SRAM,战舰板外扩了1M的SRAM,一帧640*480的图片,600KB,可以保存下来。
然后再用bmp去编码,就随你怎么处理了。

你现在的OV7670模块,是怎么采集数据的?
因为FIFO不够1帧存。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-3-7
在线时间
0 小时
 楼主| 发表于 2013-3-11 11:40:42 | 显示全部楼层
回复【3楼】正点原子:
---------------------------------
就是将camera_refresh和bmp_encode混到一起,现在只是还只是存240*320的,先测试一下!
原子大哥您那有OV7670输出640*480的代码吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-11 11:43:41 | 显示全部楼层
没呢...
回复 支持 反对

使用道具 举报

2

主题

7

帖子

0

精华

新手上路

积分
35
金钱
35
注册时间
2013-3-7
在线时间
0 小时
 楼主| 发表于 2013-3-11 11:52:26 | 显示全部楼层
回复【5楼】正点原子:
---------------------------------
大哥您对横向分辨率没有提高怎么理解?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-3-11 16:26:50 | 显示全部楼层
回复【6楼】buaaaaub:
---------------------------------
这个我也不太清楚哦,呵呵,不好意思啊。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
57
金钱
57
注册时间
2014-8-5
在线时间
4 小时
发表于 2014-10-4 16:27:03 | 显示全部楼层
楼主  你说OV7670扫描顺序是从上到下,从左到右,意思是不是:先第一列扫320次,再第二列扫320次,,,,以此类推(在QVGA输出模式下)
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
6
金钱
6
注册时间
2015-12-29
在线时间
2 小时
发表于 2015-12-29 01:26:13 | 显示全部楼层
请问您为题解决了吗,我也遇到了这样的问题
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 18:23

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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