Updated signal objectsFound() to send the object rect and full homography

git-svn-id: http://find-object.googlecode.com/svn/trunk/find_object@62 620bd6b2-0a58-f614-fd9a-1bd335dccda9
This commit is contained in:
matlabbe 2012-01-04 21:08:42 +00:00
parent 095aa8a1e9
commit 03341c215d
2 changed files with 9 additions and 7 deletions

View File

@ -400,7 +400,7 @@ void MainWindow::update(const cv::Mat & image)
std::vector<cv::Point2f> mpts_1, mpts_2; std::vector<cv::Point2f> mpts_1, mpts_2;
std::vector<int> indexes_1, indexes_2; std::vector<int> indexes_1, indexes_2;
std::vector<uchar> outlier_mask; std::vector<uchar> outlier_mask;
QMap<int, QPoint> objectsPos; QMap<int, QPair<QRect, QTransform> > objectsDetected;
float minMatchedDistance = -1.0f; float minMatchedDistance = -1.0f;
float maxMatchedDistance = -1.0f; float maxMatchedDistance = -1.0f;
for(int i=0; i<dataTree_.rows; ++i) for(int i=0; i<dataTree_.rows; ++i)
@ -500,9 +500,11 @@ void MainWindow::update(const cv::Mat & image)
// find center of object // find center of object
QRect rect = objects_.at(j)->image().rect(); QRect rect = objects_.at(j)->image().rect();
QPoint pos(rect.width()/2, rect.height()/2); objectsDetected.insert(objects_.at(j)->id(), QPair<QRect, QTransform>(rect, hTransform));
objectsPos.insert(objects_.at(j)->id(), hTransform.map(pos)); // Example getting the center of the object in the scene using the homography
//QPoint pos(rect.width()/2, rect.height()/2);
//hTransform.map(pos)
// add rectangle // add rectangle
if(this->isVisible()) if(this->isVisible())
{ {
@ -535,9 +537,9 @@ void MainWindow::update(const cv::Mat & image)
ui_->label_minMatchedDistance->setNum(minMatchedDistance); ui_->label_minMatchedDistance->setNum(minMatchedDistance);
ui_->label_maxMatchedDistance->setNum(maxMatchedDistance); ui_->label_maxMatchedDistance->setNum(maxMatchedDistance);
if(objectsPos.size()) if(objectsDetected.size())
{ {
emit objectsFound(objectsPos); emit objectsFound(objectsDetected);
} }
} }
else if(this->isVisible()) else if(this->isVisible())

View File

@ -49,7 +49,7 @@ private slots:
void update(const cv::Mat & image); void update(const cv::Mat & image);
signals: signals:
void objectsFound(const QMap<int, QPoint> &); void objectsFound(const QMap<int, QPair<QRect, QTransform> > &);
private: private:
void showObject(ObjWidget * obj); void showObject(ObjWidget * obj);