Как найти угловые координаты прямоугольника на изображении

Я получил это изображение после предварительной обработки исходного изображения. Теперь мой вопрос состоит в том, как я могу получить координаты четырехугольника прямоугольника (самого большого). Извините, если это так нубский вопрос.

enter image description here

Обновление: так как я разрабатываю с OpenCV, в конечном итоге использоватьэтот ответ

Ответы на вопрос(1)

Решение Вопроса

find all connected components calculate the convex hull for each component pick the component where the convex hull has the largest area simplify the convex hull polygon the vertices of the simplified polygon are the points you're looking for

Быстрое и грязное решение Mathematica:

(* find all connected components, calculate the convex hull for each component *)
convexHulls = ComponentMeasurements[ColorNegate[Binarize[src]], {"ConvexArea", "ConvexVertices"}];

(* pick the component where the convex hull has the largest area *)
vertices = SortBy[convexHulls[[All, 2]], First][[-1, 2]]

(* simplify the convex hull polygon, by iteratively removing the vertex with the lowest distance to the line through the vertex before and after it *)
distanceToNeighbors[vertices_] := MapThread[Abs[(#1 - #2).Cross[#1 - #3]/Norm[#1 - #3]]&, RotateLeft[vertices, #] & /@ {-1, 0, 1}]
removeVertexWithLowestDistance[vertices_] := With[{removeIndex = Ordering[distanceToNeighbors[vertices], 1]}, Drop[vertices, removeIndex]]
verticesSimplified = NestWhile[removeVertexWithLowestDistance, vertices, Min[distanceToNeighbors[#]] < 10&]

(* the vertices of the simplified polygon are the points you're looking for *)
Show[src, Graphics[
  {
   {EdgeForm[Red], Transparent, Polygon[verticesSimplified]},
   {Red, PointSize[Large], Point[verticesSimplified]}
   }]]

Result

 Tae-Sung Shin12 апр. 2012 г., 19:03
Похоже, отличное решение. Спасибо!

Ваш ответ на вопрос