4

cvFindContours() を使用して画像の輪郭領域を見つけるために OpenCV を使用しています。次に、この輪郭を異なる座標(および異なるピクセル対応)で描画したいと思います...

そこで、cvGetSeqElem() を使用してすべての輪郭要素ポイントを取得し、ピクセル対応を変換して、カスタマイズされた cvSeq を作成し、カスタマイズされた cvSeq に各要素をロードします。ただし、カスタマイズされた cvSeq で輪郭を描画しようとすると、画像に応答がありません。

この作品の目的のために、輪郭をマスキング画像に使用したいと思います。

コードは次のようになります。

<!-- language: c++ -->

CvMemStorage *memStorage = cvCreateMemStorage(0);
CvSeq* seq = cvCreateSeq(0, sizeof(CvSeq), sizeof(CvPoint), memStorage);

void  SetMaskingPoints(CvPoint point)
{ cvSeqPush(seq, &regionPoint); }
void DrawMaskingPoints()
{ cvDrawContours(maskingImage, seq, cvScalar(255,255,255), cvScalar(0,0,0), 0, 1, 8); }

私のコードは、輪郭要素を取得することから始まり、SetMaskingPoints() に順番にロードしてから、DrawMasingPoints() によって輪郭を描画します。

また、印刷しようとしたところ、cvSeq はポイント値で構成されているが、描画できないことがわかりました。

4

1 に答える 1

1

0inを次のように置き換えてみてくださいcvCreateSeq: (CV_SEQ_KIND_CURVE|CV_SEQ_ELTYPE_POINT|CV_SEQ_FLAG_CLOSED)

于 2013-04-26T07:26:04.277 に答える