FIX segfault in find_longest_line

This commit is contained in:
boyska 2017-01-12 16:25:02 +01:00
parent 22d6af3eb7
commit d1ba152d62

View file

@ -119,12 +119,17 @@ find_longest_line(std::vector<cv::Point> hull, unsigned begin, unsigned end) //t
{
std::vector<cv::Point> bestline, thisline;
int bestdistance = 0;
thisline.push_back(hull[begin++]);
thisline.push_back(hull[(begin++)%hull.size()]);
for(unsigned i=begin; i!=end; i++)
thisline.push_back(hull[(begin)%hull.size()]);
thisline.push_back(hull[(begin+1)%hull.size()]);
for(unsigned i=(begin+2)%hull.size(); i!=end; i++)
{
if(unlikely(i==hull.size()))
assert(2<=thisline.size());
std::cerr << "prima" << i << " hullsize " << hull.size() << std::endl;
if(i==hull.size()) {
i=0;
}
std::cerr << "dopo " << i << " hullsize " << hull.size() << std::endl;
assert(i < hull.size());
if(similar_fit(thisline, hull[i])) {
thisline.push_back(hull[i]);
} else { // considering if the just-finished line is the best