4

現在、輪郭境界内にあるすべての黒いピクセルを取得しようとしています。輪郭の境界には興味がありませんが、境界内にあり、実際の画像を構成する黒いピクセルに興味があります。画像の実際の座標を取得できれば素晴らしいと思います。

マスクを使用して copyTo メソッドを使用しようとしましたが、正しいパラメーターを設定していないと思います。一方、コマンドで指定された色で輪郭領域全体を塗りつぶすだけの Core.fillPoly も使用してみましたが、ピクセル情報を取得するのは役に立ちません。誰か私をここに案内してくれませんか? 私は OpenCV 2.3.1 で Android 2.2 に取り組んでいます。

4

1 に答える 1

5

輪郭境界内に収まる一連のピクセルがあります。黒のピクセルの別のセットがあります。これら 2 つのセットの交点、つまり、両方とも境界内にあり、色が黒のピクセルのセットを見つけたいと考えています。

これを行うには、次のことを行います。

  1. マスクとなるように、黒地に白 (独自のイメージ) の塗りつぶされた形状として輪郭を描画します。cv::drawContoursまたはを使用できますcv::fillPoly

  2. 画像から黒いピクセルを別のマスクとしてフィルター処理します。ゼロのしきい値cv::thresholdとともに使用できます。THRESH_BINARY_INV

  3. bitwise_andまたは単に次の&ような演算子を使用して交差セットを見つけますmatResult = mat1 & mat2;

結果は、画像と同じサイズの行列であり、輪郭内にあり、画像内で黒であるという基準を満たすピクセルに対してのみゼロ以外の値があります。この行列をループしてゼロ以外の値をテストすることで、個々の座標を取得できます。

于 2012-07-04T02:20:43.360 に答える