using namespace std;using namespa..._opencv过滤二值图像中离散点">
当前位置:   article > 正文

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

opencv过滤二值图像中离散点

参考http://blog.csdn.net/chinabinlang/article/details/6576889

 

#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>

using namespace std;
using namespace cv;

int main(int argc, char** argv)
{
  Mat src, src_thresh;
  src = imread("1.bmp", 0);
  threshold(src, src_thresh, 220, 255, 0);

  int n=4;

  for(int i=0; i<src.rows; i++)
  {
    uchar* src_thresh_data = src_thresh.ptr<uchar>(i);
    for(int j=0; j<src.cols; j++)
    {
      for(int nTemp=0; nTemp<n; nTemp++)
      {
        if(src_thresh_data[j+nTemp] != 0)
        {
          if((j+nTemp-n<src.cols) && ((i*src.cols+j+nTemp-n)>NULL) && src_thresh_data[j+nTemp-n] ==0)
          {
            break;
          }
          for(int nTemp1=0; nTemp1<nTemp; nTemp1++)
          {
            src_thresh_data[j+nTemp1] = 255;
            break;
          }
          break;
        }
      }
    }
  }

  namedWindow("src", CV_WINDOW_AUTOSIZE);
  namedWindow("src_thresh", CV_WINDOW_AUTOSIZE);
  imshow("src", src);
  imshow("src_thresh", src_thresh);
  waitKey(0);

  return 0;
}

  

  通过记录黑点, 把黑点重新设为255;n=4,应该是把,前3个黑点设为255;

 

转载于:https://www.cnblogs.com/marconi/archive/2013/03/28/2986793.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/72455
推荐阅读
相关标签
  

闽ICP备14008679号