У меня есть следующий код:Как найти координаты самого большого прямоугольника в OpenCV?
findContours(src, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
Mat drawing = Mat::zeros(src.size(), CV_8UC3);
double largest_area = 0;
for(int i = 0; i < contours.size(); i++) { // get the largest contour
area = fabs(contourArea(contours[i]));
if(area >= largest_area){
largest_area = area;
largest_contours.clear();
largest_contours.push_back(contours[i]);
}
}
if(largest_area >= 3000){ // draw the largest contour if exceeded minimum largest area
drawContours(drawing, largest_contours, -1, Scalar(0,0,255), 2);
}
... которая производит следующий вывод изображения:
Я хочу, чтобы получить координаты четырех точек (отмечены зеленым), что возможное?
Трудно сказать для компьютера, если контур представляет собой прямоугольник. Попробуйте ['cv :: approxPolyDP()'] (http://docs.opencv.org/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=approxpoly#approxpolydp) на вашем самом большом контуре с разумным параметром epsilon, он должен изготовить 4-сторонний 4-угловой полигон для приблизительно четырехугольных форм. –
попробуйте функцию HoughLinesP – Micka
Здесь [некоторые вещи] (http://stackoverflow.com/a/13532779/176769) здесь [готово для захватов] (http://stackoverflow.com/a/26242885/176769). – karlphillip