![]() |
轮廓提取逐行扫描的算法
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用来标志从左 扫描有无黑像素点出现,如果无就没有必要再从右扫描。 [B][SIZE="5"]我是新手,哪位老师能帮我把上述程序写成matlab程序,万分感谢[/SIZE][/B] |
所有时间均为北京时间。现在的时间是 09:48。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.