8邻域的01模式和连通性

d1右边的点,d2右上,d3上... 前景点的灰度为1,背景点的灰度0
方法一:d1-d1*d2*d3+d3-d3*d4*d5+d5-d5*d6*d7+d7-d7*d8*d1

方法二:8邻域的01模式和。


int Get8Neighbor01Mode(int* b)
{
	int iNum = 0 ;
	for( int i = 0 ; i < 8 ; i++ )
	{
		if( ( 0 == b[i] ) && ( 1 == b[(i+1)%8] ) )
		{
			iNum++;
		}
	}
	return iNum ;
}

int Get8NeighborConnect(int* b)
{
	int iNum = 0 ;
	for( int i = 0 ; i < 8 ; i+= 2 )
	{
		iNum += b[i];
		iNum -= b[i]*b[(i+1)%8]*b[(i+2)%8];
	}
	return iNum ;
}

for( int i = 0 ; i < 0xFF ; i++ )
	{
		int b[8] = {0};
		for( int j = 0 ; j < 8 ; j++ )
		{
			b[j] = (i >> j) & 1 ; 
		}

		int n1 = Get8Neighbor01Mode(b);
		int n2 = Get8NeighborConnect(b);

}


这两种方法的结果不一样,256种情况有90多种不同。

这90多种情况的bmp见压缩包,http://download.csdn.net/download/he_zhidan/9972691

下面试举几例:




你可能感兴趣的:(#,OpenCV)