注册 登录
查看: 796|回复: 37

[摄像头组] 关于图像解压的问题,山外哥山外哥看看,怎么破???

[复制链接]
发表于 2014-5-8 11:42:53 | 显示全部楼层 |阅读模式
我把鹰眼采集回来的图像解压到一个二维数组里面:
img[CAMERA_W][CAMERA_H];
CAMERA_W=80;CAMERA_H=60;
第一个疑问:
按照二维数组的理解,应该是80行60列数据才对啊,可是按照山外的例程注释来理解就应该是80列60行数据:
  1. #define OV7725_EAGLE_W            80                                    //定义摄像头图像宽度
  2. #define OV7725_EAGLE_H            60                                    //定义摄像头图像高度
那究竟解压后的数组是80行还是80列?
第二个问题:
调试时观察了一下解压后的数组中的数据,发现全黑的情况竟然是(0x00),而全白的情况竟然是(0xFF)

第三个问题:
第一到62行的数据有问题,下面是全白的情况截图:


山外哥,山外哥,求救!!!!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-5-8 11:48:18 | 显示全部楼层
宽度是80 ,当然要80列了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 11:49:41 | 显示全部楼层
2361431390 发表于 2014-5-8 11:48
宽度是80 ,当然要80列了。

那二维数组怎么解释?a[5][8]不就代表有5行8列吗?
回复 支持 反对

使用道具 举报

发表于 2014-5-8 11:50:41 | 显示全部楼层
对呀,我把255变为1后,黑色就是0,白色就是1
回复 支持 反对

使用道具 举报

发表于 2014-5-8 11:51:16 | 显示全部楼层
第三个,我不知道。。。。
回复 支持 反对

使用道具 举报

发表于 2014-5-8 11:52:21 | 显示全部楼层
对了,给我说下DMA,和PIT的中断优先级在哪改?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 11:56:14 | 显示全部楼层
2361431390 发表于 2014-5-8 11:50
对呀,我把255变为1后,黑色就是0,白色就是1

我记得鹰眼上说是黑是 1 ,白是 0 ,之前就一直按这个来调试的,难道这就是车子一直在转圈的原因?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 11:58:15 | 显示全部楼层
2361431390 发表于 2014-5-8 11:52
对了,给我说下DMA,和PIT的中断优先级在哪改?

山外例程的main.c里面就有,我不会改的。。。。
  1. /************************ 配置 K60 的优先级  ***********************/
  2.     //K60 的默认优先级 都为 0
  3.     //参考帖子:急求中断嵌套的例程 - 智能车讨论区 - 山外-vcan123论坛
  4.     //          http://www.vcan123.com/forum.php?mod=viewthread&tid=499&page=1#pid3270
  5.     NVIC_SetPriorityGrouping(4);            //设置优先级分组,4bit 抢占优先级,没有亚优先级

  6.     NVIC_SetPriority(PORTA_IRQn,0);         //配置优先级
  7.     NVIC_SetPriority(PORTE_IRQn,1);         //配置优先级
  8.     NVIC_SetPriority(DMA0_IRQn,2);          //配置优先级
  9.     NVIC_SetPriority(PIT0_IRQn,3);          //配置优先级
回复 支持 反对

使用道具 举报

发表于 2014-5-8 11:58:49 | 显示全部楼层
草原上的星星 发表于 2014-5-8 11:56
我记得鹰眼上说是黑是 1 ,白是 0 ,之前就一直按这个来调试的,难道这就是车子一直在转圈的原因?

就是这个原因。按行列打印到串口,可以清晰的看到黑的0白的1
回复 支持 反对

使用道具 举报

发表于 2014-5-8 12:00:48 | 显示全部楼层
草原上的星星 发表于 2014-5-8 11:49
那二维数组怎么解释?a[5][8]不就代表有5行8列吗?

这是5列8行吧。你去看下二位数组的定义,记不清了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 12:01:22 | 显示全部楼层
2361431390 发表于 2014-5-8 11:48
宽度是80 ,当然要80列了。

img[CAMERA_W][CAMERA_H];
这个我还是想不通,img[80][60]不应该是80行60列吗?可是看看图像有觉得是80列60行,你是按照什么来算的?没有遇到问题吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 12:02:54 | 显示全部楼层
2361431390 发表于 2014-5-8 12:00
这是5列8行吧。你去看下二位数组的定义,记不清了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2014-5-8 12:08:30 | 显示全部楼层
草原上的星星 发表于 2014-5-8 12:02

对,就是这样的。我看了下程序。就是宽度80定义为列,高度60定义为行。也就是a[60][80]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 12:11:19 | 显示全部楼层
2361431390 发表于 2014-5-8 12:08
对,就是这样的。我看了下程序。就是宽度80定义为列,高度60定义为行。也就是a[60][80]

那我是不是应该改为:
uint8 img[CAMERA_H][CAMERA_W];                 //定义解压后的图像数组
而不是:
uint8 img[CAMERA_W][CAMERA_H];                 //定义解压后的图像数组
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 12:21:41 | 显示全部楼层
2361431390 发表于 2014-5-8 11:50
对呀,我把255变为1后,黑色就是0,白色就是1

太谢谢你了,我改成下面后就对了(黑1白0):
  1. uint8 colour[2] = {0, 1}; //0 和 1 分别对应的颜色
  2.     //注:山外的摄像头 0 表示 白色,1表示 黑色
回复 支持 反对

使用道具 举报

发表于 2014-5-8 12:25:29 | 显示全部楼层
草原上的星星 发表于 2014-5-8 12:21
太谢谢你了,我改成下面后就对了(黑1白0):

不用谢。我想知道,设置中断优先级的函数在那个.c/.h文件中,我怎么找不到你图上那个配置优先级的地方呢?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 12:32:02 | 显示全部楼层
2361431390 发表于 2014-5-8 12:25
不用谢。我想知道,设置中断优先级的函数在那个.c/.h文件中,我怎么找不到你图上那个配置优先级的地方呢? ...

在例程【摄像头_无线传输】里面

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2014-5-8 12:37:19 | 显示全部楼层
草原上的星星 发表于 2014-5-8 12:11
那我是不是应该改为:
uint8 img[CAMERA_H][CAMERA_W];                 //定义解压后的图像数组
而不是 ...

应该是改成这样才对:
uint8 img[CAMERA_H][CAMERA_W];                 //定义解压后的图像数组像数组
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 12:44:27 | 显示全部楼层
2361431390 发表于 2014-5-8 11:50
对呀,我把255变为1后,黑色就是0,白色就是1

你确定这样做能够正确识别赛道????可是为什么别人没这么做也可以识别黑线???我感觉有点问题,如果你的确实可以那我就这样用了
回复 支持 反对

使用道具 举报

发表于 2014-5-8 12:47:15 | 显示全部楼层
草原上的星星 发表于 2014-5-8 12:44
你确定这样做能够正确识别赛道????可是为什么别人没这么做也可以识别黑线???我感觉有点问题,如果 ...

这个看处理吧,有的人把1当作白色,而有的人把255当作白色,看处理算法而已。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 12:49:10 | 显示全部楼层
栾端静 发表于 2014-5-8 12:47
这个看处理吧,有的人把1当作白色,而有的人把255当作白色,看处理算法而已。

嗯,那我就放心了。只是不知道为什么图像中间总有个小黑块,已经排除不是液晶屏的问题
回复 支持 反对

使用道具 举报

发表于 2014-5-8 12:50:40 | 显示全部楼层
草原上的星星 发表于 2014-5-8 12:49
嗯,那我就放心了。只是不知道为什么图像中间总有个小黑块,已经排除不是液晶屏的问题

有可能芯片脏了,拆开镜头,擦一下镜头芯片。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 13:17:05 | 显示全部楼层
2361431390 发表于 2014-5-8 11:58
就是这个原因。按行列打印到串口,可以清晰的看到黑的0白的1

你是怎样将一个二维数组打印到串口助手的?求指点
回复 支持 反对

使用道具 举报

发表于 2014-5-8 13:24:12 | 显示全部楼层
草原上的星星 发表于 2014-5-8 13:17
你是怎样将一个二维数组打印到串口助手的?求指点

自己写个打印函数就好了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-8 14:22:03 | 显示全部楼层
韦嘉淑 发表于 2014-5-8 13:24
自己写个打印函数就好了

嗯,已经搞定了。谢谢你的提醒,要不然我还以为多复杂的事呢
回复 支持 反对

使用道具 举报

发表于 2014-5-20 22:27:17 | 显示全部楼层
请问楼主,你那个img最终是img[CAMERA_H][CAMERA_W];还是img[CAMERA_W][CAMERA_H];
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-20 22:29:17 | 显示全部楼层
925901184 发表于 2014-5-20 22:27
请问楼主,你那个img最终是img[CAMERA_H][CAMERA_W];还是img[CAMERA_W][CAMERA_H];

是img[CAMERA_H][CAMERA_W];才对
回复 支持 反对

使用道具 举报

发表于 2014-5-20 22:33:09 | 显示全部楼层
草原上的星星 发表于 2014-5-20 22:29
是img[CAMERA_H][CAMERA_W];才对

是直接解压为二维数组的吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-20 22:34:03 | 显示全部楼层
925901184 发表于 2014-5-20 22:33
是直接解压为二维数组的吧

是的,就是这样
回复 支持 反对

使用道具 举报

发表于 2014-5-20 22:35:04 | 显示全部楼层
那你使用的是山外哥的yy_ComMonitor_car的上位机吗
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-20 22:35:56 | 显示全部楼层
925901184 发表于 2014-5-20 22:35
那你使用的是山外哥的yy_ComMonitor_car的上位机吗

我那个用不了,不知道为什么
回复 支持 反对

使用道具 举报

发表于 2014-5-20 22:37:59 | 显示全部楼层
直接解压为二维数组确实永不了,我试过,不过没有其他的上位机,后来改了别的方法,现在勉强用着那个上位机,楼主可否加下QQ 925901184,交流一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-20 22:40:10 | 显示全部楼层
925901184 发表于 2014-5-20 22:37
直接解压为二维数组确实永不了,我试过,不过没有其他的上位机,后来改了别的方法,现在勉强用着那个上位机 ...

唉,我那个上位机试了很久都用不了,后来就放弃了,用液晶屏就挺好
回复 支持 反对

使用道具 举报

发表于 2014-5-20 22:41:30 | 显示全部楼层
其实把那个二维数组改为一维的,就可以用了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-5-20 22:44:35 | 显示全部楼层
925901184 发表于 2014-5-20 22:41
其实把那个二维数组改为一维的,就可以用了

已加Q,你同意就行了
回复 支持 反对

使用道具 举报

发表于 2014-6-7 10:51:25 | 显示全部楼层
走过路过,不能错过
回复 支持 反对

使用道具 举报

发表于 2014-7-7 14:57:53 | 显示全部楼层
草原上的星星 发表于 2014-5-8 12:11
那我是不是应该改为:
uint8 img[CAMERA_H][CAMERA_W];                 //定义解压后的图像数组
而不是 ...

楼主,我想问一下,你是直接把图像解压为二维数组的么,为什么解压为一维数组然后在转换为二维数组就不行了呢???急需解答呀
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-7-7 15:58:08 | 显示全部楼层
你并不懂我雪 发表于 2014-7-7 14:57
楼主,我想问一下,你是直接把图像解压为二维数组的么,为什么解压为一维数组然后在转换为二维数组就不行 ...

直接解压为二维数组就行
回复 支持 反对

使用道具 举报

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

本版积分规则

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