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

📄 lunkuo.c

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

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

int in_buffer[BUFSIZE];
int out_buffer[BUFSIZE];

int row=64,col=64;

static void dataIO(void);


static int search(int *input,int k,int n)
{ 
  int t;
  
  switch(n)
  {case 0: t=k+1;break;   
   case 1: t=k+1-col;break;   
   case 2: t=k-col;break;
   case 3: t=k-1-col;break; 
   case 4: t=k-1;break;
   case 5: t=k-1+col;break;
   case 6: t=k+col;break;
   case 7: t=k+col+1;break;
  } 
  
  if(t<0)
  
   return t;
  
   
}





static int lunkuo(int *input,int *output)      
{                      
  int i,j,dir1,dir,m=0,next,n=-1;
 
 
  for(i=0;i<BUFSIZE;i++)
  if(i%col==0||i/col==0||i%col==(row-1)||i/col==(row-1)) 
   {output[i]=input[i];}  
  

  for(i=0;i<BUFSIZE;i++)                          //找到第1个非0点
   { if(i%col==0||i/col==0||i%col==(row-1)||i/col==(row-1))
      continue;
     else 
       {if(input[i]!=0)
         {m=i;dir=7;output[m]=input[i];break;}       //m=0
       }
     }
   
   dir1=(dir+7)%8; printf("m is %d\n",m);                           
  
  
  
  for(i=0;i<8;i++)                           
  { 
    next=search(input,m,(dir1+i)%8);              
    if(next)
     {dir=(dir1+i)%8;n=next;output[n]=input[next];break;}
  }
   
   
  /*while(n!=m)
  {
    if(dir%2==0)
     dir1=(dir+6)%8;
    else dir1=(dir+7)%8;
    
   for(i=0;i<8;i++)
   {
     next=search(input,n,(dir1+i)%8); 
     if(next)
      {
       dir=(dir1+i)%8;n=next;output[n]=input[next];break;
       }  
   } 
    
  

    
  }*/
   
  return TRUE; 
   
}

void main()
{

 int *input=&in_buffer[0];
 int *output=&out_buffer[0];
 
    while(TRUE)
       {dataIO();
       
         puts("processing\n");
         
         lunkuo(input,output);
         
        dataIO(); 
       }
  
   
}

static void dataIO()
{
  return;
}

⌨️ 快捷键说明

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