自分的にはくっついていない輪郭が1つ1つ->h.nextで選べると思っていたのですが、->h.nextを1つ増やすと1つ以外の輪郭がすべて表示されて困っています。
おそらく、線形リストのある地点より後のものがすべて表示されていると思うのですがそのリストの内1つの要素(=輪郭)を抜き出す方法がわからないです。ご教授お願いします。
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char *argv[])
{
IplImage *im = cvLoadImage("pic.png"); //画像のよみこみ
IplImage *edge; //エッジ化画像
IplImage *contourim; //輪郭画像
IplImage *result;
edge = cvCreateImage(cvGetSize(im), IPL_DEPTH_8U, 1);
contourim = cvCreateImage(cvGetSize(im), IPL_DEPTH_8U, 1);
result = cvCreateImage(cvGetSize(im), IPL_DEPTH_8U,3);
cvSet(result, CV_RGB(255,255, 255));
//ここではエッジ化処理等は省略します
//輪郭検出
CvMemStorage *storage = cvCreateMemStorage(0);
CvSeq *find_contour = NULL;
cvFindContours(second, storage, &find_contour, sizeof(CvContour), CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);
cvDrawContours(result, find_contour, CV_RGB(255, 0, 0), CV_RGB(255, 0, 0), 1, 2, 8, cvPoint(0, 0));
cvShowImage("result", result);