智能车制作

标题: 如何在OLED上显示摄像头采集的图像? [打印本页]

作者: 小边BRC    时间: 2015-1-20 12:38
标题: 如何在OLED上显示摄像头采集的图像?
求帮助

作者: 六步上篮    时间: 2015-1-20 13:04
想...
作者: xuanwozhe    时间: 2015-1-20 13:42
这是我当时将二值化之后的图像显示到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;
}
这段程序耗时还是蛮长的,仅供参考
作者: 我们的故事很多    时间: 2015-1-20 14:07
没必要啊,为什么要显示呢
作者: 小边BRC    时间: 2015-1-20 15:25
xuanwozhe 发表于 2015-1-20 13:42
这是我当时将二值化之后的图像显示到12864OLED上的程序,仅供参考,采集的图像是160*60的,先压缩成80*60的 ...

多谢呀

作者: heart许许许    时间: 2015-1-20 15:50
OLED能显示的点有点少
作者: 小边BRC    时间: 2015-1-20 16:01
heart许许许 发表于 2015-1-20 15:50
OLED能显示的点有点少

嗯嗯,就是大致看一下

作者: heart许许许    时间: 2015-1-20 16:35
小边BRC 发表于 2015-1-20 16:01
嗯嗯,就是大致看一下

可以用TFT试试,像素点足够用
作者: Albert_ss    时间: 2015-1-28 10:54
采回的图像是不能直接显示的,你只要将解压的图像用一个转置算法换算成OLED所需要的16进制的数组就可以啦
作者: 墨尔本丶晴    时间: 2015-3-11 18:25
小边BRC 发表于 2015-1-20 15:25
多谢呀

调出来了吗,我调了一天都不行,能不能发我一份188123134@qq.com

作者: 天芒    时间: 2015-3-11 18:59
xuanwozhe 发表于 2015-1-20 13:42
这是我当时将二值化之后的图像显示到12864OLED上的程序,仅供参考,采集的图像是160*60的,先压缩成80*60的 ...

那么多乘啊除的,你就移位嘛

作者: 李健明    时间: 2015-5-28 20:00
搞定了没?给我借鉴一下
作者: 小边BRC    时间: 2015-5-30 10:42
李健明 发表于 2015-5-28 20:00
搞定了没?给我借鉴一下

没做,就拿他显示了一些参数

作者: LPING    时间: 2015-6-16 02:03
xuanwozhe 发表于 2015-1-20 13:42
这是我当时将二值化之后的图像显示到12864OLED上的程序,仅供参考,采集的图像是160*60的,先压缩成80*60的 ...

求全程序,谢谢!w_d_jian@sina.com

作者: 徐鹏    时间: 2015-12-22 14:38
xuanwozhe 发表于 2015-1-20 13:42
这是我当时将二值化之后的图像显示到12864OLED上的程序,仅供参考,采集的图像是160*60的,先压缩成80*60的 ...

显示花屏咋解决啊

作者: easy--    时间: 2016-6-21 18:40
xuanwozhe 发表于 2015-1-20 13:42
这是我当时将二值化之后的图像显示到12864OLED上的程序,仅供参考,采集的图像是160*60的,先压缩成80*60的 ...

为什么我第一行显示正常  下面几行就一直在闪呢?

作者: KuroiZero    时间: 2016-7-20 14:50
还是不太懂




欢迎光临 智能车制作 (http://111.231.132.190/) Powered by Discuz! X3.2