⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lunkuo1.c

📁 ccs的轮廓追踪算法 用与c5400.嵌入式数字信号处理器DSP
💻 C
字号:
#include <stdio.h>
#include <math.h>

#define TRUE 1
#define FALSE 0
#define BUFSIZE 4096

int row=64,col=64;
int in_buffer[BUFSIZE];
int out_buffer[BUFSIZE];
int out[64][64];
int xq=-1,yq=-1;



static void dataIO(void);


static int search(int x,int y,int n)
{
  int x1,y1;
  switch(n)
  {
    case 0: x1=x+1;y1=y;   break;
    case 1: x1=x+1;y1=y-1; break;
    case 2: x1=x;y1=y-1;   break;
    case 3: x1=x-1;y1=y-1; break;
    case 4: x1=x-1;y1=y;   break;
    case 5: x1=x-1;y1=y+1; break;
    case 6: x1=x;y1=y+1;   break;
    case 7: x1=x+1;y1=y+1; break;
    
  }
  if(x1<0||y1<0||x1>(row-1)||y1>(col-1))
  return FALSE;
  else 
  {if(out[x1][y1]==out[x][y])
    {xq=x1;yq=y1;
     return (x1*col+y1);
    }
    else return FALSE;
  }
}


static int lunkuo(int *input,int *output)
{
  int i,j,dir,k,dir1,x0,y0,next;
  
  
  
  for(i=0;i<row;i++)
   for(j=0;j<col;j++)
    {
      k=i*col+j;
      out[i][j]=input[k];            //转化为矩阵的形式
    }
    
  
  
  for(i=0;i<BUFSIZE;i++)             //找出第一个0元素
   {
     if(input[i]==0)
      {
        dir=7;x0=i/col;y0=i%col;output[i]=input[i];break;   
      }
   } 
 
  dir1=(dir+7)%8;
 
  for(i=0;i<8;i++)
   {
    
    next=search(x0,y0,(dir1+i)%8);
    if(next)
     {output[next]=0;dir=(dir1+i)%8;break;}
    
   }

 
  
  while(xq!=x0||yq!=y0)
   {
     
     if(dir%2==0) dir1=(dir+6)%8;                                                                                 
     else dir1=(dir+7)%8; 
      
     for(i=0;i<8;i++)
      {
        next=search(xq,yq,(dir1+i)%8);
        if(next)
        {output[next]=0;dir=(dir1+i)%8;break;}
       
        }
      
   }
  
   
   return TRUE;
   
}



void main()
{
 int i;
 int *input=&in_buffer[0];
 int *output=&out_buffer[0];
 for(i=0;i<BUFSIZE;i++)
   out_buffer[i]=255;
    while(1)
     {
       dataIO();
       
         puts("processing\n");
         
         lunkuo(input,output);
         
        dataIO(); }
   
   
}

static void dataIO()
{
  return;
}

⌨️ 快捷键说明

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