2013-01-17 37 views
5

Xin chào, tôi có vấn đề về đa giác. Tôi không biết phải tìm gì nên tôi quyết định hỏi ở đây. Hình ảnh dưới đây cho thấy một hình dạng đơn giản. Các đường bao được phát hiện với OpenCV's findContours() và được xác định bởi CV_CHAIN_APPROX_TC89_KCOS (đối với những người muốn biết cách này được thực hiện) thuật toán, để tất cả các điểm trong một dòng, được tóm tắt thành một dòng. Vì vậy, anyways một số đường nét có chứa một số loại, tôi gọi nó là tiếng ồn, trong hình dạng. Hình ảnh dưới đây cho thấy những gì có nghĩa là với tiếng ồn. Đường màu đỏ là đường bao. (Xin lỗi không ms sơn kỹ năng)Gần đúng đường bao gồm các điểm không mong muốn

enter image description here

Mục tiêu của tôi là để xác định lại hình dạng gần đúng hình dạng, nhưng bỏ qua này "tiếng ồn". Vì vậy, các đường viền sẽ như thế này. Đường màu xanh dương hiển thị đường bao được sửa.

enter image description here

+0

Bạn đã kiểm tra [cv :: approxPolyDP] (http://opencv.willowgarage.com/documentation/cpp/structural_analysis_and_shape_descriptors.html#cv-approxpolydp)? Có vẻ như nó đang làm những gì bạn đang cố gắng đạt được. Nếu bạn có góc dốc, bạn có thể cần phải áp dụng chức năng một phần và không phải ở toàn bộ đa giác cùng một lúc. –

+0

Tôi sẽ thử. Tôi sẽ đưa ra phản hồi trong một vài phút –

+0

Cũng không có may mắn với cv :: approxPolyDP –

Trả lời

4
  1. Hãy thử để phát hiện góc với ... cvGoodFeatuersToTrack() .... nhưng có một tiêu chí mà góc nên được tách ra bởi một số lượng tốt về khoảng cách ... nếu góc tạo thành một cụm loại bỏ chúng.
  2. Từ danh sách các điểm nằm trong đường bao ... chọn điểm có (cao nhất x, y cao nhất), (cao nhất x, thấp nhất y), (thấp nhất x, cao nhất) và (thấp nhất x, thấp nhất y) .... bây giờ tham gia những bốn điểm ...
  3. Nếu bạn có 'tiếng ồn' ở góc riêng của mình sau đó cố gắng phát hiện những đường thẳng trong hình ảnh sử dụng Hough của transform ...
+0

Điều này nghe khá hữu ích, nhưng nếu đa giác của tôi không phải là một hình chữ nhật đơn giản; một cái gì đó giống như một đa giác hình chữ L? (Tôi sẽ cập nhật câu hỏi của tôi nhanh chóng) –

+0

Cơ hội mà bạn có thể có 'tiếng ồn' ở góc 90 độ là gì? –

+0

Gần bằng không. BTW cách tiếp cận rất tốt để tìm kiếm các cụm! +1 –

1

tôi có thể đề nghị một cách tiếp cận khác:

1) Bạn có thể sử dụng Hough Line Transform để phát hiện các dòng trên hình ảnh của bạn (trước khi sử dụng Canny để phát hiện đường nét). Bạn không thể xem xét các dòng nhỏ bằng cách sử dụng ngưỡng khá lớn (số lượng giao lộ tối thiểu để "phát hiện" một dòng) trong phương thức HoughLinesP.

2) Sau khi tìm tất cả các dòng, bạn có thể tìm thấy giao lộ của chúng khi được mô tả here bởi @DanielHsH. Vì vậy, bạn sẽ có thể tìm thấy tất cả các góc.

Các vấn đề liên quan