在每个向量中找到min / max x,y <vector <point>&gt;

时间:2017-08-10 19:37:36

标签: c++ opencv image-processing

我在图像中找到了轮廓,并将它们的坐标存储在矢量&lt;矢量&lt;点&gt;&gt;如下所示:vector of vector(Point)

我想在每个载体中找到xmax,xmin,ymax和ymin。 Min/Max coordinates 我必须把它写在某处,所以我可以在我的脚本的其他部分使用这些值。

vector<vector<Point> > contours1; 
vector<Vec4i> hierarchy1; 
findContours(testowy, contours1, hierarchy1, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE);

int xmax = 0;
int xymax = 0;
int ymax = 0;
int yxmax = 0;


for( int i = 0; i < contours1.size(); i++ ){
        for(int j=0; j < contours1[i].size();j++){

            if(contours1[i][j].x > xmax){
            xmax = contours1[i][j].x;
            xymax = contours1[i][j].y;   

            }                 

            if(contours1[i][j].y > ymax){
            ymax = contours1[i][j].y;
            yxmax = contours1[i][j].x;

            }  
        }
    } 

不幸的是,我的代码只能找到所有向量的最大坐标。

1 个答案:

答案 0 :(得分:0)

struct myclass {
    bool operator() (cv::Point pt1, cv::Point pt2) { return (pt1.y < pt2.y); }
} myobject;
sort(pnt.begin(), pnt.end(), myobject);

使用此简单代码并将pnt替换为您的向量名称,您可以在向量vecotr [0]中将其最大值/最小值作为混合值,而向量[last]中将为最大值