mrgloom 242 Жалоба Опубликовано July 7, 2011 Есть бинарное изображение с объектами на нем, необходимо нарисовать рамку вокруг объекта. т.е. надо получить координаты ограничивающей объект рамки относительно самого изображения. пока я придумал только попиксельный обход ,может есть что то быстрее и уже готовое? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано July 7, 2011 вроде бы есть Rect boundingRect(const Mat& points) 2D point set это что набор связных пикселей? как его получить? Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах
mrgloom 242 Жалоба Опубликовано July 7, 2011 вроде нашел http://stackoverflow.com/questions/3669611/bounding-box-using-opencv //Finding bounding boxes around regions of a binary image //Linked list of connected pixel sequences in a binary image CvSeq* seq; //Array of bounding boxes vector<CvRect> boxes; //Memory allocated for OpenCV function operations CvMemStorage* storage = cvCreateMemStorage(0); cvClearMemStorage(storage); //Find connected pixel sequences within a binary OpenGL image (diff), starting at the top-left corner (0,0) cvFindContours(diff, storage, &seq, sizeof(CvContour), CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE, cvPoint(0,0)); //Iterate through segments for(; seq; seq = seq->h_next) { //Find minimal bounding box for each sequence CvRect boundbox = cvBoundingRect(seq); boxes.push_back(boundbox); Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах