2012-11-07 37 views
6

Trên hình ảnh ở trên có một số mẫu hình học. Mô hình a khoảng cách được biết đến. Điểm không nằm trong khoảng cách mô hình nghiêm ngặt.Chất lượng mẫu hình học và điền

Tôi muốn:

  • tính toán mỗi chất điểm (khoảng cách thực giữa các điểm không phải là a) điểm tốt hơn phù hợp với mô hình coeficient chất lượng tốt hơn nó nên có (Tôi đã cố gắng lấy khoảng cách và góc 45 độ)
  • loại bỏ các điểm sai (Tôi đã đánh dấu bằng màu đỏ) - được kết nối với máy tính có chất lượng mẫu

Những gì tôi đã cố gắng cho đến nay:

  1. Hãy mỗi điểm với mỗi
  2. Tính khoảng cách khác và góc giữa chúng
  3. Hãy chỉ chỉ người hàng xóm đến thời điểm hiện tại (mà khoảng cách giữa a - deltaa + delta
  4. Chất lượng là realDistance/modelDistance * realAngle/modelAngle

Tại sao nó thất bại:

  • điểm Chất lượng tốt đã được giảm mạnh với điểm xấu trong khu phố
  • Nếu điểm xấu chỉ có một người hàng xóm và khoảng cách và góc là ok chất lượng của nó là ok.

Vì vậy, câu hỏi là: thuật toán tốt nhất để tính điểm chất lượng trong trường hợp này là gì và điền vào mẫu. Mẫu phải được điền bằng vị trí trung bình của phần tử lấy vị trí hàng xóm trong tài khoản. Câu trả lời hay nhất sẽ là mã giả hoặc mã hoặc tham chiếu đến một số thuật toán đã biết có thể hữu ích trong trường hợp này.

Câu hỏi có liên quan một chút với câu hỏi trước đây của tôi Filling rectangle with points pattern nhưng việc điền không thể thực hiện được với điểm chất lượng sai.

Trả lời

1

Nếu lỗi/méo của điểm không lớn hơn khi bạn đi từ trái sang phải hoặc từ trên xuống dưới (tức là khoảng cách trung bình a giữa các điểm tốt lân cận được biết chính xác), bạn có thể thử như sau:

  • mang mỗi điểm P i vào vuông [0,a[ x [0,a[ bằng cách lấy phần còn lại của x và y tọa độ khi chia thông qua một máy phát (Q i). Vì vậy, những điểm tốt sẽ nhiều hơn hoặc ít hơn được ánh xạ vào một điểm.
  • Trong số các điểm được tạo này Q i chọn một điểm R với những người hàng xóm gần nhất (ví dụ:tổng hợp 1/distance cho tất cả các khoảng cách đến các điểm khác Q j, j ≠ i và chọn một số có tổng tối đa).
  • Bây giờ bạn có thể phân biệt giữa các điểm tốt và xấu P i bởi looing ở những khoảng cách Q i để R. (Điểm P i mà Q tương ứng i gần R sẽ được điểm tốt.)

Nếu điểm R (với những người hàng xóm gần nhất) có phối hợp chặt chẽ để 0 hoặc một (tức là R là gần với biên giới của hình vuông [0,a[ x [0,a[), bạn bắt đầu tốt hơn ngay từ đầu và thêm a/2 để tương ứng tọa độ (của mỗi P i) befo tính toán phần còn lại, để mang lại điểm R nhiều hơn cho trung tâm của hình vuông. (Hoặc bạn quản lý để tính toán khoảng cách tối thiểu của các khả năng khác nhau để rời khỏi hình vuông [0,a[ x [0,a[ ở một bên và trở lại vào nó ở phía đối diện.)

+0

Nhưng giải pháp này phụ thuộc vào một số lựa chọn cơ sở. Có lẽ hình ảnh tôi đã đính kèm quá cụ thể. Điều gì xảy ra nếu các điểm đầu tiên là xấu? – krzych

+0

Bạn chọn "lựa chọn cơ sở" nào? Trong cách tiếp cận này, tất cả các điểm được xử lý như nhau, không có gì giống như "điểm đầu tiên". Tất cả các điểm được ánh xạ vào ô vuông [0, a [x [0, a [. Những người đến gần nhau trong quảng trường này là những người "tốt". Vấn đề sẽ chỉ phát sinh nếu khoảng cách trung bình 'a' giữa các điểm tốt không được biết chính xác. – coproc

+0

Bạn có thể làm rõ đoạn cuối của câu trả lời (từ "Nếu điểm R ..."). Điều gì với phần thứ hai của câu hỏi làm mẫu? – krzych

1

Các điểm tốt dường như được căn chỉnh dọc theo một lưới. Có thể tìm thấy các đường lưới bằng thuật toán phù hợp với đường dây sử dụng RANSAC. RANSAC phù hợp với dòng là một thuật toán xác suất. Bạn sẽ phải lặp lại nó cho đến khi bạn tìm thấy một dòng gần như nằm ngang hoặc dọc. Lấy các điểm trên/gần dòng này ra và đi cho các đường lưới tiếp theo. Tùy thuộc vào đặc điểm vấn đề của bạn, bạn sẽ ngừng tìm kiếm các đường lưới mới nếu còn quá ít điểm hoặc quá ít điểm trên/gần một dòng. Những điểm còn lại là những điểm xấu. Khi bạn thực hiện giao điểm của các đường lưới được tìm thấy và không có điểm nào (từ tất cả các điểm gốc) gần ngã tư, thì bạn có thể điền vào một điểm ở đây.

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