2

私は実際に B&W ピクセルの cv::Mat を使用しています。このマットのブラック ポイントのリストを取得する方法を探しています。

誰かがそのようなことをする方法を知っていますか?

この点の境界矩形を検出したいので、それをしたいです。(最良の方法は、それらをベクトルに戻すことです)

ある種の :

cv::Mat blackAndWhite;
std::vector<cv::Point> blackPixels = MAGIC_FUNCTION(blackAndWhite);

ご協力いただきありがとうございます。

編集:私は、可能な限り Opencv に準拠したベスト プラクティスが必要であることを正確に伝えたいと思います。

4

2 に答える 2

2

この OpenCV の例は、必要なことを正確に実行する方法を示しています。基本的に、これは次のとおりです。

  // ... 
  /// Find contours
  findContours( threshold_output, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) );

  /// Approximate contours to polygons + get bounding rects and circles
  vector<vector<Point> > contours_poly( contours.size() );
  vector<Rect> boundRect( contours.size() );
  vector<Point2f>center( contours.size() );
  vector<float>radius( contours.size() );

  for( int i = 0; i < contours.size(); i++ )
  {  
     approxPolyDP( Mat(contours[i]), contours_poly[i], 3, true );
     boundRect[i] = boundingRect( Mat(contours_poly[i]) );
     minEnclosingCircle( (Mat)contours_poly[i], center[i], radius[i] );
  }
于 2013-06-26T12:20:48.160 に答える