2016-06-22 4 views
0

Я обнаруживаю прямоугольник в изображении с использованием openCV. Как и во многих примерах, я использую порог + findContours + approxPolyDP.Обнаруженные контуры Opencv

Как показано на рисунке ниже, моя проблема в том, что контуры, найденные findContours не продолжаются, поэтому после approxPolyDP, я не могу получить прямоугольник ...

Итак, у вас есть какие-либо идеи, как Для решения этой проблемы? Спасибо. :)

Другой вопрос: почему контуры серые? После порога должно быть только белое и черное, разве не должно быть?

Contours

After approxPolyDP

+0

becarefull в [findcontours] (http://docs.opencv.org/master/d3/dc0/group__imgproc__shape.html#ga17ed9f5d79ae97bd4c7cf18403e1689a) исходного изображения изменяется – LBerger

ответ

0

С ++: пустота approxPolyDP (InputArray кривая, OutputArray approxCurve, двойной эпсилон, BOOL закрытые)

эпсилон - параметр, указывающий точность аппроксимации. Это максимальное расстояние между исходной кривой и ее приближением .

попытка увеличения эпсилон

+0

Спасибо. «approxPolyDP приближает кривую или многоугольник с другой кривой/многоугольником с меньшим количеством вершин, так что расстояние между ними меньше или равно заданной точности». Итак, для полигона, после approxPolyDP, что мы должны получить? Вершины? –

+0

взгляните на [это] (http://docs.opencv.org/2.4/modules/imgproc/doc/structural_analysis_and_shape_descriptors.html?highlight=approxpolydp) и [это] (http://docs.opencv.org/ 2.4/doc/tutorials/imgproc/formsescriptors/bounding_rects_circles/bounding_rects_circles.html) – Lucifer

+0

approxPolyDP приближает многоугольник вокруг контуров. если epsilon близок к 0, полигон approxPolyDP становится похож на многоугольник из контуров. при увеличении epsilon точность результата approxPolyDP уменьшается (больше epsilon approxPolyDP будет игнорировать дентацию на вашем изображении и дает прямоугольник) [это] (http://docs.opencv.org/3.1.0/dd/d49/tutorial_py_contour_features. html # gsc.tab = 0) - идеальное объяснение – Lucifer

Смежные вопросы