智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 8489|回复: 16
打印 上一主题 下一主题

如何在OLED上显示摄像头采集的图像?

  [复制链接]

8

主题

111

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1153
威望
579
贡献
358
兑换币
381
注册时间
2014-11-22
在线时间
108 小时
毕业学校
河南理工大学万方科技学院
跳转到指定楼层
1#
发表于 2015-1-20 12:38:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求帮助
回复

使用道具 举报

15

主题

197

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5465
QQ
威望
2569
贡献
1554
兑换币
1702
注册时间
2013-4-6
在线时间
671 小时
推荐
发表于 2015-1-20 13:42:16 | 只看该作者
这是我当时将二值化之后的图像显示到12864OLED上的程序,仅供参考,采集的图像是160*60的,先压缩成80*60的,也就是将相邻的两个像素合并成一个像素
        u8 tempimg[60][80];
        for(i=0; i<=59; i++)
            for(j=0; j<=79; j++)
            {
                tempimg[i][j] = image_bin[i][j*2] || image_bin[i][j*2+1];//通过或运算合并像素
            }
      //开始往OLED上显示,一次写8个像素,从上到下
        for(i=0; i<=6; i++)//7次循环完成56*80的图像区
        {
            LCD_Set_Pos(0,i);
            for(j=0; j<80; j++)//一次循环完成一个8*60的图像去
            {
                u8 x = tempimg[i*8][j]
                    +tempimg[i*8+1][j]*2
                        +tempimg[i*8+2][j]*4
                            +tempimg[i*8+3][j]*8
                                +tempimg[i*8+4][j]*16
                                    +tempimg[i*8+5][j]*32
                                        +tempimg[i*8+6][j]*64
                                            +tempimg[i*8+7][j]*128;//将竖着的8个像素合并成一个字节
                LCD_WrDat(x);
            }
        }
        //上面的一段程序完成了56行像素的显示,同理,下面显示剩下4行
        LCD_Set_Pos(0,7);
        for(j=0; j<80; j++)
        {
            u8 x = tempimg[56][j]
                +tempimg[57][j]*2
                    +tempimg[58][j]*4
                        +tempimg[59][j]*8;
            LCD_WrDat(x);
        }
void LCD_WrDat(byte data)
{
    byte i=8;
    //LCD_CS=0;;
    GPIOB_PDOR |=  GPIO_PDOR_PDO(GPIO_PIN(21));;;;
    asm("nop");
    GPIOB_PDOR &= ~GPIO_PDOR_PDO(GPIO_PIN(18));;;;
    asm("nop");   
    while(i--)
    {
        if(data&0x80){GPIOB_PDOR |=  GPIO_PDOR_PDO(GPIO_PIN(19));;;;}
        else{GPIOB_PDOR &= ~GPIO_PDOR_PDO(GPIO_PIN(19));;;;}
        GPIOB_PDOR |=  GPIO_PDOR_PDO(GPIO_PIN(18));
        asm("nop");;;;
        //asm("nop");            
        GPIOB_PDOR &= ~GPIO_PDOR_PDO(GPIO_PIN(18));;;;;   
        data<<=1;   
    }
    //LCD_CS=1;
}
这段程序耗时还是蛮长的,仅供参考
回复 支持 2 反对 0

使用道具 举报

28

主题

2228

帖子

1

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
15822

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章资源大师奖章

QQ
威望
7433
贡献
4215
兑换币
5195
注册时间
2013-12-9
在线时间
2087 小时
2#
发表于 2015-1-20 13:04:09 | 只看该作者
想...
回复 支持 反对

使用道具 举报

25

主题

459

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2795
威望
1399
贡献
866
兑换币
886
注册时间
2014-2-12
在线时间
265 小时
4#
发表于 2015-1-20 14:07:12 | 只看该作者
没必要啊,为什么要显示呢
回复 支持 反对

使用道具 举报

8

主题

111

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1153
威望
579
贡献
358
兑换币
381
注册时间
2014-11-22
在线时间
108 小时
毕业学校
河南理工大学万方科技学院
5#
 楼主| 发表于 2015-1-20 15:25:13 | 只看该作者
xuanwozhe 发表于 2015-1-20 13:42
这是我当时将二值化之后的图像显示到12864OLED上的程序,仅供参考,采集的图像是160*60的,先压缩成80*60的 ...

多谢呀
回复 支持 反对

使用道具 举报

0

主题

33

帖子

0

精华

高级会员

Rank: 4

积分
929
威望
444
贡献
319
兑换币
285
注册时间
2014-10-3
在线时间
83 小时
毕业学校
吉林大学
6#
发表于 2015-1-20 15:50:19 | 只看该作者
OLED能显示的点有点少
回复 支持 反对

使用道具 举报

8

主题

111

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1153
威望
579
贡献
358
兑换币
381
注册时间
2014-11-22
在线时间
108 小时
毕业学校
河南理工大学万方科技学院
7#
 楼主| 发表于 2015-1-20 16:01:21 | 只看该作者
heart许许许 发表于 2015-1-20 15:50
OLED能显示的点有点少

嗯嗯,就是大致看一下
回复 支持 反对

使用道具 举报

0

主题

33

帖子

0

精华

高级会员

Rank: 4

积分
929
威望
444
贡献
319
兑换币
285
注册时间
2014-10-3
在线时间
83 小时
毕业学校
吉林大学
8#
发表于 2015-1-20 16:35:05 | 只看该作者
小边BRC 发表于 2015-1-20 16:01
嗯嗯,就是大致看一下

可以用TFT试试,像素点足够用
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

注册会员

Rank: 2

积分
145
威望
65
贡献
58
兑换币
42
注册时间
2015-1-20
在线时间
11 小时
毕业学校
重庆大学
9#
发表于 2015-1-28 10:54:34 | 只看该作者
采回的图像是不能直接显示的,你只要将解压的图像用一个转置算法换算成OLED所需要的16进制的数组就可以啦
回复 支持 反对

使用道具 举报

2

主题

27

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1055
威望
517
贡献
282
兑换币
284
注册时间
2014-7-16
在线时间
128 小时
毕业学校
桂电
10#
发表于 2015-3-11 18:25:42 | 只看该作者
小边BRC 发表于 2015-1-20 15:25
多谢呀

调出来了吗,我调了一天都不行,能不能发我一份188123134@qq.com
回复 支持 反对

使用道具 举报

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

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-26 03:30 , Processed in 0.195558 second(s), 31 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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