轮廓提取逐行扫描的算法
			 
			 
			
		
		
		
			
			void lunkuotiqu() 
{h=0;k=0;flagl:;flag2=1; 
for(int i:0;i<m_pBIH->biHeight;i++) 
{na :l; 
for(int j=0;j<m_pBIH->biWidth;j++)     //逐行从左扫描,找到左起第一个黑像素点 
 
{p=pw+(SrcBufSize-LineBytes-i LineBytes)+j; 
if(*P==0) 
{flag3=0; 
if(flagl= =1){h=i;flagl:0;{ 
a[i][0]=j;break; 
} 
{ 
if(flag3= =0) 
for(int k=m_pB1H->biWidth-1;k>=O;k--)       //逐行从右扫描,找到右起第一个黑像素点 
 
{p=pw+(SrcBufSize-LineBytes-i*LineBytes)+k; 
if(*p==O){a[i][1]=k;break;} 
} 
if(flag3==O)&&(h>0){k=i;nag2=O;} 
if(flag2==0)break; 
 { 
{ 
 
该段代码中主要变量的作用足:a[i][0]存放第i行左起 
第一个黑像素点的纵坐标;n[i][1]存放第i行右起第一个黑 
像素点的纵坐标; 用来标志逐行扫描出现的第一个黑像素点 
所在的行标; 用来标志逐行扫描出现的最后一个黑像素点所 
在的行标;flagl、flag2分别用来标志逐行扫描到的黑像素点是 
否第一个黑像素点和最后一个黑像素点;flag3用来标志从左 
扫描有无黑像素点出现,如果无就没有必要再从右扫描。 
 
我是新手,哪位老师能帮我把上述程序写成matlab程序,万分感谢
		 
		
		
		
		
		
		
		
	 |