OpenEdv-开源电子网

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

求助:stm32比较两张图片,结果一直显示不同!

[复制链接]

3

主题

9

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2017-10-26
在线时间
5 小时
发表于 2017-11-18 14:34:59 | 显示全部楼层 |阅读模式
8金钱
我用想用摄像头去分辨当前环境有没有人,通过先获取背景图并将其存入数组,再将之后获取的图像与背景图像做比较,之后获取的图像也是存入数组中的,如果图像有超过1000个像素点不同则显示有人(我这里让LED灯亮)。但是现在就是初始化之后过一会儿,灯会一直亮着,我也不知道哪里出错了。。。我是将ov7670设为YUV模式获取的灰度图像,之前通过上位机软件看到第一帧获取的图像是没有问题的。求大神解答啊~

最佳答案

查看完整内容[请看2#楼]

因为摄像头前后读取的两幅图就不可能会一模一样。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

56

主题

343

帖子

0

精华

高级会员

Rank: 4

积分
977
金钱
977
注册时间
2016-3-8
在线时间
267 小时
发表于 2017-11-18 14:35:00 | 显示全部楼层
因为摄像头前后读取的两幅图就不可能会一模一样。
回复

使用道具 举报

3

主题

9

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2017-10-26
在线时间
5 小时
 楼主| 发表于 2017-11-18 14:37:08 | 显示全部楼层
这个是源码~

灰度图像上传.rar

3.46 MB, 下载次数: 137

回复

使用道具 举报

3

主题

9

帖子

0

精华

新手入门

积分
12
金钱
12
注册时间
2017-10-26
在线时间
5 小时
 楼主| 发表于 2017-11-18 14:40:25 | 显示全部楼层
void camera_refresh(void)
{
  
        u16 color,judge=0;
        u8 YUV_U;

       
        if(ov_sta)//óDÖ¡ÖD¶Ï¸üD£¿
        {  
                uint32_t cnt =2,i;       
                OV7670_RRST=0;                                //¿a꼸′λ¶áÖ¸Õë
                OV7670_RCK_L;
                OV7670_RCK_H;
                OV7670_RCK_L;
                OV7670_RRST=1;                               
                OV7670_RCK_H;

                for(col=0;col<240;col++)
                {                       
                        for(row=0;row<320;row++)
                        {        
                                        OV7670_RCK_L;       
                                        color=OV7670_DATA;        //&#182;áêy&#190;Y
                                        OV7670_RCK_H;

                                        OV7670_RCK_L;
                                        YUV_U=OV7670_DATA;        //&#182;áêy&#190;Y
                                        OV7670_RCK_H;

                                if(background==1&&(col%2==0)&&(row%2==0))
                                {                               
                                                SendBuff[cnt++]  = (u8)color;       
                                }else if (background==0&&(col%2==0)&&(row%2==0))
                                {
                               
                                        SendBuff3[cnt++]  =  (u8)color;       
                               
                                }
                }
        }       
                for( i=2;i<SEND_BUF_SIZE;i++){
                                if(SendBuff[i]!=SendBuff3[i]){
                                judge++;
                                }
               
                }
                if(judge>=10000){
                  LED1=0;
                }else {
                        LED1=1;
                }
                background=0;
                ov_sta=0;                                        //&#199;&#229;á&#227;&#214;&#161;&#214;D&#182;&#207;±ê&#188;&#199;
                ov_frame++;
       
        }
}          
回复

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2017-11-12
在线时间
18 小时
发表于 2017-11-18 17:19:11 | 显示全部楼层
为什么不用串口?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 20:37

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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