1. 程式人生 > >一個x方向的簡單聚類

一個x方向的簡單聚類

void clustering(vector<cv::Point2f> &vec_in)
{
    int size = vec_in.size();

    for (int i = 0; i < vec_in.size();i++)
    {
        vector<int> count;
        int current_x = vec_in[i].x;
        int ii = i;
        for (int j = ii+1; j < vec_in.size(); j++)
        {
            int last_x = vec_in[j].x;
            if (abs(last_x-current_x)<10)
            {
                count.push_back(j);
            }
        }
        sort(count.begin(), count.begin() + count.size());
        if (count.size()>=1)
        {
            for (int k =count.size()-1; k >=0 ;k--)
            {
                vec_in.erase(vec_in.begin() + count[k], vec_in.begin() + count[k]+1);
            }
        }
    }
}

 

 

當vec_in中的x量相差小於10時,合併為一個點