//去横向离散:
int n = 50; //横向离散点连续数,小于的,就去除;
for (int i = 0; i< height; i++)
{
for( int j = 0 ; j < width ; j++ )
{
for( int nTemp = 0 ; nTemp < n; nTemp++ )
{
if ( gradient[i*linebyte+j + nTemp] != 0)
{
if ( ( j + nTemp - n < linebyte ) && ( (i*linebyte+j + nTemp - n) > NULL ) && gradient[i*linebyte+j + nTemp - n] == 0 ) //防止去掉右边缘;
{
break;
}
for( int nTemp1 = 0 ; nTemp1<nTemp; nTemp1++ ) //取消非连续点;
{
gradient[i*linebyte+j + nTemp1] = 255;
break;
}
break;
}
}
}
}
//可以通过多次调用,去除不同的离散点;
//去除二值化图像纵向离散点,可以旋转图像90度,去除完成后,旋转图像正常;