contourAreas
サイズの関数として数を数え、ユーザーに表示するプログラムを開発しようとしています。
すべての領域に作成できましたが、それぞれの下にテキストラベルを追加して、それぞれのサイズで表示drawContours
したいと思います。contouArea
opencv関数putTextを使用できます
輪郭の中心の位置を取得する方法を知っていると思いますよね?
これで始められるはずです。すべての等高線を通過するには、以下のh_nextでforループを使用する必要があります。詳細を知りたい場合は、GaryBradskiの本LearningOpenCvをお勧めします。これらは、本の中で輪郭を見つけることに関するいくつかの素晴らしい例です。
CvMemStorage* contour_storage = cvCreateMemStorage(0);
CvSeq* contours;
CvFont font;
cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 0.6f, 0.6f, 0, 2);
cvFindContours(sourceImage, contour_storage, &contours, sizeof (CvContour), CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);
for (CvSeq* d = contours; d != NULL; d = d->h_next) {
CvRect iconBox = cvBoundingRect(d, 0);
CvPoint center = cvPoint(iconBox.x + (iconBox.width / 2), iconBox.y + (iconBox.height / 2));
int area = abs(cvContourArea(d, CV_WHOLE_SEQ));
cvPutText(sourceImage,"area", center, &font, CV_RGB(255, 255, 255));
}