1

MSER (OpenCV) detectRegions を使用する Python プログラムを C++ に移植しています。C++ プログラムで検出された MSER 領域の数が Python のものよりも大幅に少ないという奇妙な動作に気付きました。両方の入力として同じ画像を使用し、detectRegions を呼び出す前に同じ前処理手順を実行しています。特定のサンプル イメージでは、Python プログラムによって検出された MSER 領域の数は 6620 でしたが、C++ に移植した後は 1164 しか得られません。

私の最後での唯一の違いは、Python では x64 バージョンの cv2.pyd (\build\python\2.7\x64) を使用し、C++ では x86 (\build\x86\vc12) を使用していることです。

両方のプログラムで、次の手順が実行されます。

  1. imread を使用してイメージを読み取る

  2. COLOR_BGR2GRAY で cvtColor を使用してグレースケールに変換します

  3. ヒストグラム等化を実行します。

    a. CLAHE object is created using clipLimit=2.0, tileGridSize - 8x8
    
    b. apply CLAHE on gray image
    
  4. 画像の高さと幅を取得します。
  5. 画像を 600X800 SVGA サイズにスケーリング

    を。幅 > 高さの場合、スケール = 幅 / 800.0

    b. それ以外のスケール = 高さ / 600.0

    c. 上記の倍率「scale」で「resize」を使用してください

  6. MSER オブジェクトの作成
  7. setDelta(4)
  8. detectRegions を呼び出す
4

0 に答える 0