2

外部輪郭を破棄しながら穴を抽出または表示する方法はありませんか?内部輪郭抽出(HOLES)OpenCV

CV_RETR_EXTERNALを使用して外部輪郭のみを表示できますが、内部の輪郭(穴)を表示する方法はないようです。

答えて

2

あなたは、Cインタフェースで、このようなものを使用することができます

cvFindContours(tmp, storage, &srcSeq, sizeof(CvContour), 
         CV_RETR_LIST, CV_CHAIN_APPROX_SIMPLE); 
     while (srcSeq) 
     { 
      if (CV_IS_SEQ_HOLE(srcSeq)) 
      { 
       // do something with the hole 
      } 
      srcSeq = srcSeq->h_next; 
     } 

あなたがC++インタフェースを使用している場合、あなたはFindContours(から階層パラメータを使用する必要があります)輪郭が穴であるかどうかを確認するために。

+0

これはうまくいきませんでした... 私が望むのは、cvDrawContours(src1、c、red、blue、1,0.25,8)を使って等高線を表示することです。 外部輪郭から別々の穴を開けることはできません...外部と内部の両方の輪郭にはほとんど同じ時間のフラグがあります ...わずかな外部輪郭には異なるフラグがあります... 要するに、大文字小文字の場合は...とにかく助けてくれてありがとう) – Saleh

+0

「if」でチェックした穴だけを描画するには、maxLevelパラメータ= 0のcvDrawContoursを呼び出さなければなりません:cvDrawContours(src1、 srcSeq、赤、青、0,0.25,8)。 – Adrian

+0

ええ、それはありがとう...あまりにも... <3 u:P – Saleh