智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2043|回复: 11
打印 上一主题 下一主题

图像如此,情何以堪

[复制链接]

3

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
威望
166
贡献
87
兑换币
57
注册时间
2012-10-30
在线时间
54 小时
毕业学校
鲁西南大学
跳转到指定楼层
1#
发表于 2013-2-26 14:23:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

用红树伟业的自带摄像头测试程序,结果出来的图像如图所示,求大神指点。

本帖子中包含更多资源

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

x

2

主题

160

帖子

0

精华

金牌会员

畅畅

Rank: 6Rank: 6

积分
2085
QQ
威望
1069
贡献
596
兑换币
639
注册时间
2012-9-3
在线时间
210 小时
2#
发表于 2013-2-26 14:58:00 | 只看该作者
程序晒一下呗·····
回复 支持 反对

使用道具 举报

31

主题

1084

帖子

1

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5125

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章

威望
2630
贡献
1311
兑换币
922
注册时间
2011-5-8
在线时间
592 小时
3#
发表于 2013-2-26 16:14:57 | 只看该作者
qq375048735 发表于 2013-2-26 14:58
程序晒一下呗·····

有道理
回复 支持 反对

使用道具 举报

0

主题

16

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
363
QQ
威望
193
贡献
112
兑换币
128
注册时间
2012-12-5
在线时间
29 小时
4#
发表于 2013-2-26 18:11:31 | 只看该作者
所言极是,,可能是程序的问题,我们用红树的就没有问题啊。。。
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
威望
166
贡献
87
兑换币
57
注册时间
2012-10-30
在线时间
54 小时
毕业学校
鲁西南大学
5#
 楼主| 发表于 2013-2-26 20:18:11 | 只看该作者
1228463834 发表于 2013-2-26 16:14
有道理

#include <hidef.h> /* common defines and macros */
#include "derivative.h" /* derivative-specific definitions */
#define ROW 36
#define COLUMN 85
#define ROW_START 10
#define ROW_MAX 280
#define THRESHOLD 0x20
unsigned char Buffer[ROW][COLUMN]={0};
unsigned char Buffer_Temp[ROW][COLUMN]={0};
unsigned char SampleFlag=0 ;
unsigned char Interval;
unsigned int m=0;
unsigned int n=0;
unsigned int Line=0;
/***************************************************
** 函数名称: PLL_Init
** 功能描述: 时钟初始化函数
** 说明:
****************************************************/
void PLL_Init(void)
{
CLKSEL=0x00; //48mhz
PLLCTL_PLLON=1;
SYNR=0XC0 | 0X05;
REFDV=0X80 | 0X01;
POSTDIV=0X00;
_asm(nop);
_asm(nop);
while(0==CRGFLG_LOCK);//锁相环锁定
CLKSEL_PLLSEL=1;//选定外部时钟
}
/**************************
** 函数名称: TIM_Init
** 功能描述: 行场中断初始化函数
** 说明:
****************************************************/
void TIM_Init(void)
{
TIOS=0x00; //外部输入捕捉 0,1 通道
TCTL4=0x09; //通道0上升沿触发,通道 1 下降沿触发
TSCR1=0x80; //使能
TIE=0x03; //通道 0,1 中断使能
TFLG1=0xFF; //清中断标志位
}
/***************************************************
** 函数名称: IO_Init
** 功能描述: IO口初始化函数
** 说明:
****************************************************/
void IO_Init(void)
{
DDRB=0X00;
}
/***************************************************
** 函数名称: SCI_Init
** 功能描述: 串口初始化函数
** 说明:
****************************************************/
void SCI_Init()
{
SCI0BD=312; //9600bps Baud Rate=BusClock/(16*SCIBD)
SCI0CR1=0; //正常8位模式,无奇偶校验
SCI0CR2=0X2C; //发送允许 接受中断允许
}
/**************************************************
** 函数名称: SCI_Write
** 功能描述: 给串行口写一个字符数据
** 输 入: SendChar为写入字符
** 输 出: 无
** 说明:
***************************************************/
void SCI_Write(unsigned char SendChar)
{
while (!(SCI0SR1&0x80));
SCI0DRH=0;
SCI0DRL=SendChar;
}
/**************************************************
** 函数名称: Image_Binaryzation
** 功能描述: 图像数据二值化
** 输 入: row
** 输 出: 无
** 说明:
***************************************************/
void Image_Binaryzation(unsigned int row) //二值化程序
{
unsigned char *p_Image;
unsigned char *q_Image;
q_Image=&Buffer_Temp[row][0];
for(p_Image=&Buffer[row][0];p_Image<=&Buffer[row][COLUMN-1];p_Image++)
{*(q_Image++)=*p_Image; }
}
/**************************************************
** 函数名称: Process
** 功能描述: 图像数据处理
** 输 入: 无
** 输 出: 无
** 说明:
***************************************************/
void Process()
{
unsigned char i,j;
for(i=0;i<ROW;i++)
{
for(j=0;j<COLUMN;j++)
{
if(Buffer_Temp[j]>THRESHOLD)
SCI_Write('1') ;
else SCI_Write('0') ;
}
SCI_Write(0x0D);
SCI_Write(0X0A);
}
}
/***************************************************
** 函数名称: main
** 功能描述: 主函数
** 说明:
****************************************************/
void main(void)
{
/* put your own code here */
PLL_Init();
TIM_Init();
IO_Init();
SCI_Init();
EnableInterrupts;
for(;;)
{
Process();
// _FEED_COP(); /* feeds the dog */
} /* loop forever */
/* please make sure that you never leave main */
}
/**************************************************
** 函数名称: 中断处理函数
** 功能描述: 行中断处理函数
** 输 入: 无
** 输 出: 无
** 说明:
***************************************************/
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 8 PT0_Interrupt()
{
TFLG1_C0F=1;
Line++;
if ( SampleFlag == 0 || Line<ROW_START || Line>ROW_MAX )
{
return;
}
if(Line<=132) Interval=12;
else if(Line>132&&Line<=200) Interval=8;
else if(Line>200&&Line<=248) Interval=6;
else Interval=4;
if(Line%Interval==0)
{
Buffer[m][0]=PORTB; Buffer[m][n+0]=PORTB;
Buffer[m][1]=PORTB; Buffer[m][n+1]=PORTB;
Buffer[m][2]=PORTB; //Buffer[m][n+2]=PORTB;
Buffer[m][3]=PORTB; Buffer[m][n+3]=PORTB;
Buffer[m][4]=PORTB; Buffer[m][n+4]=PORTB;
Buffer[m][5]=PORTB; //Buffer[m][n+5]=PORTB;
Buffer[m][6]=PORTB; Buffer[m][n+6]=PORTB;
Buffer[m][7]=PORTB; Buffer[m][n+7]=PORTB;
Buffer[m][8]=PORTB; //Buffer[m][n+8]=PORTB;
Buffer[m][9]=PORTB; Buffer[m][n+9]=PORTB;
Buffer[m][10]=PORTB; Buffer[m][n+10]=PORTB;
Buffer[m][11]=PORTB; //Buffer[m][n+11]=PORTB;
Buffer[m][12]=PORTB; Buffer[m][n+12]=PORTB;
Buffer[m][13]=PORTB; Buffer[m][n+13]=PORTB;
Buffer[m][14]=PORTB; //Buffer[m][n+14]=PORTB;
Buffer[m][15]=PORTB; Buffer[m][n+15]=PORTB;
Buffer[m][16]=PORTB; Buffer[m][n+16]=PORTB;
Buffer[m][17]=PORTB; //Buffer[m][n+17]=PORTB;
Buffer[m][18]=PORTB; Buffer[m][n+18]=PORTB;
Buffer[m][19]=PORTB; Buffer[m][n+19]=PORTB;
Buffer[m][20]=PORTB; //Buffer[m][n+20]=PORTB;
Buffer[m][21]=PORTB; Buffer[m][n+21]=PORTB;
Buffer[m][22]=PORTB; Buffer[m][n+22]=PORTB;
Buffer[m][23]=PORTB; //Buffer[m][n+23]=PORTB;
Buffer[m][24]=PORTB; Buffer[m][n+24]=PORTB;
Buffer[m][25]=PORTB; Buffer[m][n+25]=PORTB;
Buffer[m][26]=PORTB; //Buffer[m][n+26]=PORTB;
Buffer[m][27]=PORTB; Buffer[m][n+27]=PORTB;
Buffer[m][28]=PORTB; Buffer[m][n+28]=PORTB;
Buffer[m][29]=PORTB; //Buffer[m][n+29]=PORTB;
Buffer[m][30]=PORTB; Buffer[m][n+30]=PORTB;
Buffer[m][31]=PORTB; Buffer[m][n+31]=PORTB;
Buffer[m][32]=PORTB; //Buffer[m][n+32]=PORTB;
Buffer[m][33]=PORTB; Buffer[m][n+33]=PORTB;
Buffer[m][34]=PORTB; Buffer[m][n+34]=PORTB;
Buffer[m][35]=PORTB; //Buffer[m][n+35]=PORTB;
Buffer[m][36]=PORTB; Buffer[m][n+36]=PORTB;
Buffer[m][37]=PORTB; Buffer[m][n+37]=PORTB;
Buffer[m][38]=PORTB; //Buffer[m][n+38]=PORTB;
Buffer[m][39]=PORTB; Buffer[m][n+39]=PORTB;
Buffer[m][40]=PORTB; Buffer[m][n+40]=PORTB;
Buffer[m][41]=PORTB; //Buffer[m][n+41]=PORTB;
Buffer[m][42]=PORTB; Buffer[m][n+42]=PORTB;
Buffer[m][43]=PORTB; Buffer[m][n+43]=PORTB;
Buffer[m][44]=PORTB; //Buffer[m][n+44]=PORTB;
Buffer[m][45]=PORTB; Buffer[m][n+45]=PORTB;
Buffer[m][46]=PORTB; Buffer[m][n+46]=PORTB;
Buffer[m][47]=PORTB; //Buffer[m][n+47]=PORTB;
Buffer[m][48]=PORTB; Buffer[m][n+48]=PORTB;
Buffer[m][49]=PORTB; Buffer[m][n+49]=PORTB;
Buffer[m][50]=PORTB; //Buffer[m][n+50]=PORTB;
Buffer[m][51]=PORTB; Buffer[m][n+51]=PORTB;
Buffer[m][52]=PORTB; Buffer[m][n+52]=PORTB;
Buffer[m][53]=PORTB; //Buffer[m][n+53]=PORTB;
Buffer[m][54]=PORTB; Buffer[m][n+54]=PORTB;
Buffer[m][55]=PORTB; Buffer[m][n+55]=PORTB;
Buffer[m][56]=PORTB; //Buffer[m][n+56]=PORTB;
Buffer[m][57]=PORTB; Buffer[m][n+57]=PORTB;
Buffer[m][58]=PORTB; Buffer[m][n+58]=PORTB;
Buffer[m][59]=PORTB; //Buffer[m][n+59]=PORTB;
Buffer[m][60]=PORTB; Buffer[m][n+60]=PORTB;
Buffer[m][61]=PORTB; Buffer[m][n+61]=PORTB;
Buffer[m][62]=PORTB; //Buffer[m][n+62]=PORTB;
Buffer[m][63]=PORTB; Buffer[m][n+63]=PORTB;
Buffer[m][64]=PORTB; Buffer[m][n+64]=PORTB;
Buffer[m][65]=PORTB; //Buffer[m][n+65]=PORTB;
Buffer[m][66]=PORTB; Buffer[m][n+66]=PORTB;
Buffer[m][67]=PORTB; Buffer[m][n+67]=PORTB;
Buffer[m][68]=PORTB; //Buffer[m][n+68]=PORTB;
Buffer[m][69]=PORTB; Buffer[m][n+69]=PORTB;
Buffer[m][70]=PORTB; Buffer[m][n+70]=PORTB;
Buffer[m][71]=PORTB; //Buffer[m][n+71]=PORTB;
Buffer[m][72]=PORTB; Buffer[m][n+72]=PORTB;
Buffer[m][73]=PORTB; Buffer[m][n+73]=PORTB;
Buffer[m][74]=PORTB; //Buffer[m][n+74]=PORTB;
Buffer[m][75]=PORTB; Buffer[m][n+75]=PORTB;
Buffer[m][76]=PORTB; Buffer[m][n+76]=PORTB;
Buffer[m][77]=PORTB; //Buffer[m][n+77]=PORTB;
Buffer[m][78]=PORTB; Buffer[m][n+78]=PORTB;
Buffer[m][79]=PORTB; Buffer[m][n+79]=PORTB;
Buffer[m][80]=PORTB; //Buffer[m][n+80]=PORTB;
Buffer[m][81]=PORTB; Buffer[m][n+81]=PORTB;
Buffer[m][82]=PORTB; Buffer[m][n+82]=PORTB;
Buffer[m][83]=PORTB; //Buffer[m][n+83]=PORTB;
Buffer[m][84]=PORTB; Buffer[m][n+84]=PORTB;
/*Buffer[m][85]=PORTB; Buffer[m][n+85]=PORTB;*/
m++;
}
Image_Binaryzation(m);
}
/**************************************************
** 函数名称: 中断处理函数
** 功能描述: 场中断处理函数
** 输 入: 无
** 输 出: 无
** 说明:
***************************************************/
#pragma CODE_SEG __NEAR_SEG NON_BANKED
void interrupt 9 PT1_Interrupt()
{
TFLG1_C1F=1;
TFLG1_C0F=1;
m=0;
Line=0;
SampleFlag=1;
}
回复 支持 反对

使用道具 举报

3

主题

8

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
361
威望
166
贡献
87
兑换币
57
注册时间
2012-10-30
在线时间
54 小时
毕业学校
鲁西南大学
6#
 楼主| 发表于 2013-2-26 20:19:11 | 只看该作者
张松涛ly 发表于 2013-2-26 18:11
所言极是,,可能是程序的问题,我们用红树的就没有问题啊。。。

程序已晒,求帮忙看看
回复 支持 反对

使用道具 举报

16

主题

1510

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5586

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

QQ
威望
2953
贡献
1231
兑换币
29
注册时间
2012-6-2
在线时间
702 小时
7#
发表于 2013-2-26 22:19:10 | 只看该作者
回复 支持 反对

使用道具 举报

0

主题

1672

帖子

0

精华

杰出人士

Rank: 12Rank: 12Rank: 12

积分
13030
QQ
威望
7128
贡献
3436
兑换币
424
注册时间
2013-1-5
在线时间
1233 小时
8#
发表于 2013-2-27 10:17:26 | 只看该作者
回复 支持 反对

使用道具 举报

31

主题

1084

帖子

1

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5125

优秀会员奖章活跃会员奖章论坛元老奖章在线王奖章

威望
2630
贡献
1311
兑换币
922
注册时间
2011-5-8
在线时间
592 小时
9#
发表于 2013-2-27 12:15:21 | 只看该作者
本帖最后由 1228463834 于 2013-2-27 12:17 编辑
思无邪。 发表于 2013-2-26 20:18
#include  /* common defines and macros */
#include "derivative.h" /* derivative-specific definiti ...


你这种图像我以前也遇到过哦,我看行场中断都应该正常吧,可能是接触不好 要么就是程序繁琐没采集完 或者是其它,你换个采集代码看看 效果
线路应该没接错吧

本帖子中包含更多资源

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

x
回复 支持 反对

使用道具 举报

0

主题

53

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
397
威望
214
贡献
109
兑换币
121
注册时间
2012-11-16
在线时间
37 小时
10#
发表于 2013-2-27 16:01:55 | 只看该作者
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 20:02 , Processed in 0.072324 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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