OpenCV 漫水填充(二)

2014-11-24 02:48:11 · 作者: · 浏览: 10
y + 1;
Seeds[StackPoint].x = iCurrentPixelx;
}
}

//判断右面的点,如果为黑,则压入堆栈
//注意防止越界
if(iCurrentPixelx < iWidth - 1)
{

//取得当前指针处的像素值,注意要转换为unsigned char型
pixel = (unsigned char)grey_liantong.GetPixel(iCurrentPixelx+1,iCurrentPixely);
if (pixel == 0)
{
StackPoint++;
Seeds[StackPoint].y = iCurrentPixely;
Seeds[StackPoint].x = iCurrentPixelx + 1;
}
}

//判断下面的点,如果为黑,则压入堆栈
//注意防止越界
if(iCurrentPixely > 1)
{

//取得当前指针处的像素值,注意要转换为unsigned char型
pixel = (unsigned char)grey_liantong.GetPixel(iCurrentPixelx,iCurrentPixely-1);
if (pixel == 0)
{
StackPoint++;
Seeds[StackPoint].y = iCurrentPixely - 1;
Seeds[StackPoint].x = iCurrentPixelx;
}
}
}//end while( StackPoint != 0)
flag = (flag + 7)%251+1; //当前点连通区域标定后,改变标定值
}//end if
}//end for(i
}//end for(j


//释放堆栈
delete Seeds;
grey_res.Clone(grey_liantong);


推荐阅读: