10

Tôi có một hình ảnh với một tam giác đều và một hình chữ nhật:
equilateral triangle and a rectangle
Và tôi muốn phát hiện 3 góc của tam giác chỉ. Tôi theo dõi OpenCV Harris corner detector tutorial Tôi thấy rằng tất cả các góc-điểm của tam giác có ngưỡng = 80 (khi tất cả 4 góc-điểm của ngưỡng hình chữ nhật = 255). Nhưng tôi không tìm thấy mối liên hệ giữa ngưỡng và mức độ.Làm thế nào để phát hiện góc với độ góc cụ thể

Làm cách nào để tìm góc trong phạm vi [55,65] độ?
Đây là đầu ra Mat http://pastebin.com/raw.php?i=qNidEAG0

P/s: Tôi rất mới với CV, hy vọng bạn có thể cung cấp thêm chi tiết!

Trả lời

9

Dường như tôi đã tìm được giải pháp khả thi. Tôi đã thực hiện nó trên Mathematica và có thể giải thích các bước cơ bản.

  1. Sử dụng toán tử góc tìm và chiếm các góc mạnh nhất. Sử dụng toán tử Harris. Corners
  2. Tìm đường nét (cv :: FindContours).

    Contours

  3. Đối với mỗi góc trong từng đường viền vẽ một vòng tròn và tìm điểm giao nhau giữa đường tròn và đường viền. Không có chức năng sẵn sàng cho nó trong OpenCV và bạn nên tự mình thực hiện nó.

    Intersections

  4. Bây giờ cho mỗi góc bạn có tọa độ của ba điểm: góc, và hai điểm trên các cạnh của đường viền. Nó là đủ để đánh giá góc bằng dot product:

    angle estimation

Kết quả:

Corners found

+0

Đối với bước đầu tiên, bạn có nghĩa là tất cả các cực đại địa phương của kết quả hình thành * cv :: cornerHarris *? – nvcnvn

+0

Có, bạn đã hiểu đúng. – brotherofken

+0

Giải pháp tuyệt vời! Tôi nghĩ rằng cách dễ nhất để tìm điểm giao nhau ở điểm 3 là vẽ hình tròn trên hình trống (trống) và sử dụng & toán tử trên hình ảnh này và trên hình ảnh đường nét. Kết quả phải là tất cả các điểm giao nhau. – cyriel

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