MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB图像处理] 轮廓提取逐行扫描的算法 (https://www.labfans.com/bbs/showthread.php?t=8362)

chen_012 2009-05-14 21:12

轮廓提取逐行扫描的算法
 
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.