OpenEdv-开源电子网

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

用F429+OV2640采集图像数据 在emwin界面显示

[复制链接]

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2017-1-11
在线时间
17 小时
发表于 2018-4-24 10:50:47 | 显示全部楼层 |阅读模式
10金钱
最近在项目中遇到一个难题,希望大神能帮忙给个思路。
问题是这样的:
1、我用OV2640 采集图像数据 RGB565模式,图像大小为200*200   数据采集是可以实现的
2、我在emwin界面做了一个icon图标,点进去后显示一个800*480的对话框
3、现在我想在对话框的中间位置显示摄像头采集的200*200图像,其他地方保持对话框原来的样子
4、图像数据是先保存在一个数组里面,在通过DMA2D传到LCD显存地址
5、LCD设置有2层,因为对话框显示在前景层,所以我把图像数据也显示在前景层
出现的问题:
显示在前景层中的图像不对,找了下LCD显示的资料,发现前景层设置的是ARGB1555的格式,背景层是RGB565格式
出现的这种问题是不是摄像头采集的数据是RGB565的 在前景层显示就乱了?现象如前景层显示结果图:

前景层显示的结果

前景层显示的结果

后来直接换成在背景层显示,点击到对话框中时,看不到摄像头图像,退出对话框后,在桌面背景图中间有显示一帧摄像头图像
麻烦各位大神帮忙看看,想要在对话框中显示摄像头数据要怎么做,求个思路!
个人想法:
1、把RGB565DE 图像数据转成ARGB1555格式在显示(貌似比较复杂)
2、在对话框中间,挖空一个200*200大小的区域,然后再背景层显示图像(但是怎么挖空?)
求大神帮忙!!!!


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

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2018-4-25 02:03:27 | 显示全部楼层
回复

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2017-1-11
在线时间
17 小时
 楼主| 发表于 2018-4-25 10:58:41 | 显示全部楼层
找到了一种解决方法,在要显示图片的区域画一个矩形框,设置为透明颜色
回复

使用道具 举报

2

主题

394

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2085
金钱
2085
注册时间
2012-5-8
在线时间
312 小时
发表于 2018-4-25 19:04:43 | 显示全部楼层
帮顶。
回复

使用道具 举报

55

主题

474

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2374
金钱
2374
注册时间
2017-8-7
在线时间
207 小时
发表于 2018-4-27 13:51:37 | 显示全部楼层
兄弟,问一下你是用什么函数才显示出来图像的,怎么弄透明,我也遇到这种问题,时间温度还有摄像头无法再屏幕上显示,估计是因为层的问题,但是我没有找到,麻烦指点一下谢谢啦
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2017-1-11
在线时间
17 小时
 楼主| 发表于 2018-5-2 17:25:11 | 显示全部楼层
kbq1950361006 发表于 2018-4-27 13:51
兄弟,问一下你是用什么函数才显示出来图像的,怎么弄透明,我也遇到这种问题,时间温度还有摄像头无法再屏 ...

对话框是在前景层,摄像头直接用lcd的函数画到背景层,然后在要显示摄像头图像的位置画一个透明的矩形框,具体如下:
GUI_SelectLayer(1); //对话框在前景层
hWin = GUI_CreateDialogBox(_aDialogCreate, GUI_COUNTOF(_aDialogCreate), _cbDialog, WM_HBKWIN, 0, 0);  //创建对话框(全屏的)

然后再对话框回调函数中的重绘消息下,设置透明颜色,画一个矩形框:
GUI_SetColor(GUI_TRANSPARENT);
GUI_FillRect(300,110,490,300);

这样就相当于在对话框中挖了个洞,就可以看到背景层的画面了,然后只要把摄像头的图像在背景层对应区域显示就行。
这样做有个不好的地方就是会破坏背景层的内容,所以每次退出对话框后,都需要重新绘制背景图

回复

使用道具 举报

55

主题

474

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2374
金钱
2374
注册时间
2017-8-7
在线时间
207 小时
发表于 2018-5-3 09:22:30 | 显示全部楼层
wslk427 发表于 2018-5-2 17:25
对话框是在前景层,摄像头直接用lcd的函数画到背景层,然后在要显示摄像头图像的位置画一个透明的矩形框 ...

我现在用之前的LCD color Fill,也能显示,我创建的主界面是Window窗口,还有我是把这个注释掉了        //WM_MULTIBUF_Enable(1);  ,才能用lcd的显示函数,谢谢你兄弟,我现在想实现背景图片显示,不知兄弟可有方法
qq1950361006,互帮互助,共同进步。
回复

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2017-1-11
在线时间
17 小时
 楼主| 发表于 2018-5-4 11:09:42 | 显示全部楼层
kbq1950361006 发表于 2018-5-3 09:22
我现在用之前的LCD color Fill,也能显示,我创建的主界面是Window窗口,还有我是把这个注释掉了        //WM_MUL ...

显示背景图片你可看下原子哥的图片显示实验,他都封装好了
回复

使用道具 举报

0

主题

2

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2018-4-23
在线时间
7 小时
发表于 2018-5-14 11:03:53 | 显示全部楼层
wslk427 发表于 2018-5-4 11:09
显示背景图片你可看下原子哥的图片显示实验,他都封装好了

楼主你好,我也是用emwin+ov2640 但是下载程序之后就黑屏了,不知道你有没有遇到过类似的情况,我用的是f407的。不知道为什么,两个工程emwin和ov2640单独测试的时候都是正常正确的,但是结合在一起即使没有调用摄像头的任何初始化函数 液晶屏都没有显示 。只有把dcmi的中断服务函数屏蔽了才有显示。想请教一下。
回复

使用道具 举报

7

主题

24

帖子

0

精华

初级会员

Rank: 2

积分
84
金钱
84
注册时间
2017-1-11
在线时间
17 小时
 楼主| 发表于 2018-5-16 15:14:32 | 显示全部楼层
darkmoon 发表于 2018-5-14 11:03
楼主你好,我也是用emwin+ov2640 但是下载程序之后就黑屏了,不知道你有没有遇到过类似的情况,我用的是f ...

你是想整个屏幕都显示摄像头图像吗?还是只显示在某个框里面?如果是现实在一个小框里面,那你的确定一下你摄像头的图像数据要放在显存的那个位置,这个在DCMI——DMA配置里面。就是你摄像头一行数据对应放到显存的哪个位置。dcmi——DMA在摄像头初始化完成后再使能。你可以先把ov2640单独的程序改成在屏幕中间位置的小框内显示,然后再移植到emwin中
回复

使用道具 举报

3

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
76
金钱
76
注册时间
2018-5-19
在线时间
10 小时
发表于 2018-5-19 02:46:15 | 显示全部楼层
有源码么?给发一下
回复

使用道具 举报

2

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2018-9-19
在线时间
13 小时
发表于 2018-10-15 21:59:37 | 显示全部楼层
可以发一下程序让我们菜鸟学习下吗?
回复

使用道具 举报

1

主题

232

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3312
金钱
3312
注册时间
2015-4-19
在线时间
364 小时
发表于 2020-11-13 16:15:59 | 显示全部楼层
wslk427 发表于 2018-5-16 15:14
你是想整个屏幕都显示摄像头图像吗?还是只显示在某个框里面?如果是现实在一个小框里面,那你的确定一下 ...

大侠你的成功了没,我想DIY一个,emwin ov2640二维解码
回复

使用道具 举报

1

主题

232

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3312
金钱
3312
注册时间
2015-4-19
在线时间
364 小时
发表于 2020-11-13 16:55:33 | 显示全部楼层
大侠你的成功了没,我也想DIY一个,emwin ov2640二维解码,谢谢
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 11:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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