【发布时间】:2015-11-28 18:55:33
【问题描述】:
我想从 Point2f 点的向量中找到矩形的四个角。
这些点将是具有各自值的最大和最小 x 值,而其他两个角将是具有各自 y 值的最大 y 值。
到目前为止,我找到了 x 和 y 的最大值和最小值。我试图弄清楚如何将这些最大值与它们的其他值重新结合起来,所以我有四个 x,y 点。这可能吗?
编辑:矩形与图片视图成一定角度。
这是我的代码,目前运行良好:
vector<cv::KeyPoint> keypoints;
blob_detector->detect(backproj_dilate, keypoints);
vector<Point2f> XY;
for (size_t i=0; i<keypoints.size(); i++){
XY.push_back(keypoints[i].pt);
}
float X, Y;
float maxX= 0;
float minX = 10000;
float maxY= 0;
float minY = 10000;
for(size_t i=0; i<keypoints.size(); i++){
X = XY[i].x;
Y = XY[i].y;
if( X > maxX){
maxX = X;
}
if( X < minX){
minX = X;
}
if( Y > maxY){
maxY = Y;
}
if( Y < minY){
minY = Y;
}
}
【问题讨论】:
-
你尝试解决stackoverflow.com/questions/33938487/opencv-connecting-dots 吗?如果是这样,请尝试@Miki 的建议。
-
在研究这些时,我遇到了一个我认为很棒的 simplBlobDetector,因为它给了我每个点的坐标。我现在就是这样。你认为我试图做的事情是不可能的吗?
-
如果您发布完整的代码,我可以展示如何做您想做的事情。
-
查看 OpenCV 示例 minarea.cpp 。
-
我现在不在笔记本电脑旁,但我会看看并回复您。感谢您的帮助。