智能车制作
标题:
关于摄像头算法仿真的软件plastid2
[打印本页]
作者:
Roacher
时间:
2008-4-19 06:12
标题:
关于摄像头算法仿真的软件plastid2
小弟最近在用plsatid2调试算法,但发现那个CCDData好像是一维的数组,而且那个值在程序执行一次后才改变一次,这样的话,对与摄像头组的算法调试没有任何用啊?有哪个知道是什么原因啊,不懂是哪里理解错了,麻烦知道的告诉一下 如果有好的算法调试软件也可以分享分享,不胜感激啊
作者:
chenyongde
时间:
2009-3-18 00:41
基本上不用这个。
作者:
vssheep
时间:
2010-3-23 15:03
CCDData是摄像头采集数据的指针,图像是用一个一维数组存储的,引用其值要写做*(CCDData+偏移量)
给个程序你参考下,应该就会用了。
#include "stdafx.h"
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
return TRUE;
}
extern "C" _declspec(dllexport)
void Judge( unsigned short Speed,
unsigned char* SensorData, unsigned short SensorCount,
unsigned char* CCDData, int CCDWidth, int CCDHeight,
unsigned short* MotorPWM, unsigned short* SteerPWM)
{
CCDWidth=76; CCDHeight=30;
int CCDW,CCDH,startpoint,left,right,CCDWend,x;
int ccdMP[30];
for(CCDW=0;CCDW<CCDWidth/2;CCDW++)
{
if(*(CCDData+CCDWidth/2+CCDW)<100) {startpoint=CCDWidth/2+CCDW;CCDW=CCDWidth/2;}
else
if(*(CCDData+CCDWidth/2-CCDW)<100) {startpoint=CCDWidth/2-CCDW;CCDW=CCDWidth/2;}
}
ccdMP[0]=startpoint;
left=startpoint;
right=startpoint;
for(CCDH=0;CCDH<CCDHeight;CCDH++)
{
while((*(CCDData+left+CCDWidth*CCDH)<100)&&(left<ccdMP[CCDH]-20)&&(left>-1))
{
left--;
}
while((*(CCDData+right+CCDWidth*CCDH)<100)&&(right<ccdMP[CCDH]+20)&&(right<76))
{
right++;
}
if((left==ccdMP[CCDH]-20)||(right==ccdMP[CCDH]+20)||(left==-1)||(right==76))
{
CCDWend=CCDH;
CCDH=CCDHeight;
}
else
{
ccdMP[CCDH]=(left+right)/2;
left=ccdMP[CCDH];
right=ccdMP[CCDH];
}
}
x=0;
for(CCDH=0;CCDH<CCDWend;CCDH++) x+=ccdMP[CCDH];
x=x/CCDWend-38;
*SteerPWM=32768+x*800;
*MotorPWM=5000;
}
extern "C" _declspec(dllexport)
void Reset()
{
}
作者:
ningbo
时间:
2010-4-5 14:01
谢谢
作者:
nandehutu586
时间:
2010-4-15 14:04
作者:
ppxxll1234
时间:
2010-6-8 21:35
Thank you
作者:
yhsy110
时间:
2013-6-9 09:10
:):):)
欢迎光临 智能车制作 (http://111.231.132.190/)
Powered by Discuz! X3.2