getcircle.c

来自「根据摄像头数据分析计算目标距离与方向 并驱动机械进行跟踪 采用合众达DEC643」· C语言 代码 · 共 68 行

C
68
字号
static unsigned int fx=160,fy=240;

void getCir(unsigned char *a)
{
		int i,j;
		unsigned int x,y;
		unsigned int xt[8],yt[8];
		unsigned char *src;
		if(fx==0) fx=160;
		if(fy==0) fy=240;
		src=a;
		for(i = 0;i < 480;i++)
			{
				for(j = 0;j < 320;j ++)
				{
				if(*src>140)
				//if(fabs(*src - *(src+2))>20 || fabs(*src - *(src+1280))>20) 
					*src=255;
				else
					*src=0;
				src++;
				}
			}
		
		src=a;
		x=fx;
		y=fy;
		while(x<320 && *(src+x+y*320)==255)
		{
			x++;
		}
		xt[0]=x;
		yt[0]=y;
		x=fx;
		y=fy;

		while(x>0 && *(src+x+y*320)==255)
		{
			x--;
		}
		xt[1]=x;
		yt[1]=y;

		x=fx;
		y=fy;
		
		while(y<480 && *(src+x+y*320)==255)
		{
			y++;
		}
		xt[2]=x;
		yt[2]=y;

		x=fx;
		y=fy;
		while(y>0 && *(src+x+y*320)==255)
		{
			y--;
		}
		xt[3]=x;
		yt[3]=y;

		fx=(xt[0]+xt[1])/2;
		fy=(yt[2]+yt[3])/2;
}


⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?