去除二值化图像横向离散点

来源:互联网 发布:bing词典知乎 编辑:程序博客网 时间:2024/05/01 03:44

 

   //去横向离散:

 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度,去除完成后,旋转图像正常;

原创粉丝点击