8

opencvのグレー画像の位置で、最も明るいピクセルの上位1%(または上位100ピクセル)を見つけるのを手伝ってくれる人はいますか。cvMinMaxLoc() は最も明るいピクセル位置のみを提供するためです。

どんな助けでも大歓迎です。

4

5 に答える 5

2

これは単純ですが非効率的で愚かな方法です:

for i=1:100
  get brightest pixel using cvMinMaxLoc 
  store location
  set it to a value of zero
end

効率を気にしなければ、これでうまくいくはずです。

また、cvInRangeS をチェックして、低しきい値と高しきい値を定義する同様の値の他のピクセルを見つける必要があります。

于 2010-09-06T18:28:54.957 に答える
0

最も論理的な方法は、画像全体を繰り返し処理してから、ピクセルの値を取得することmaxですmin。次に、目的の割合 (この場合は 1%) を与えるしきい値を選択します。その後、もう一度反復して、指定されたしきい値を超える各ピクセルの座標を保存iします。jこのようにして、マトリックスを 100 回 (またはピクセルの 1% 回) ではなく 2 回だけ反復し、最も明るいものを選択して削除します。

OpenCV マットは多次元配列です。灰色の画像は、0 から 255 までの値を持つ 2 次元配列です。このように行列を繰り返し処理できます。 for(int i=0;i < mat.height();i++) for(int j=0;j < mat.width();j++) mat[i][j];

于 2017-06-20T15:13:43.153 に答える
0

代わりにcvThresholdを使用してみてください。

于 2010-09-06T03:54:59.553 に答える