Điều đó sẽ không đơn giản thực sự ... Bạn có thể thử làm việc hoàn toàn với cấu trúc Biểu đồ. Đầu tiên trích xuất tất cả các pixel được kết nối từ hình ảnh và chèn chúng vào Biểu đồ nơi các nút lân cận được kết nối với một cạnh. Bạn có thể loại bỏ các Đồ thị nhỏ hơn một số nút M (để loại trừ các điểm nhỏ không liên quan đến hình ảnh).
Khi kết thúc quá trình này, bạn sẽ có một bộ Đồ thị bị ngắt kết nối. (Đánh giá từ hình ảnh của bạn, đây không phải là Cây chính xác vì có chu kỳ trong đó)
Bạn có thể tìm thấy các điểm cực trị của mỗi Biểu đồ (các pixel cực trong ngoại vi của mỗi Biểu đồ) bằng cách bắt đầu từ một số nút ngẫu nhiên và thực hiện DFS .
Khi kết thúc quá trình này, bạn sẽ có một bộ tọa độ pixel cho mỗi Biểu đồ tương ứng với các điểm cực trị nơi các kết nối có nhiều khả năng hình thành.
Bây giờ bạn có thể thử kết nối các điểm lân cận điểm cực gần nhất (với khoảng cách <= 5) chỉ bằng một đường thẳng.
Nhưng, nếu bạn muốn tính đến độ dốc của đoạn đường dẫn đến pixel cực trị đó, bạn có thể cố gắng "khớp một đường" với N pixel PRIOR để đạt được pixel cực trị đó. Vì vậy, nếu N = 5, thì 5 pixel cuối cùng của một nhánh sẽ được sử dụng để ước tính một dòng.
Do đó, đối với mỗi cặp hàng xóm gần nhất, giờ đây bạn cũng có một thứ khác để sử dụng làm tiêu chí để đánh giá xem có nên kết nối hai phân đoạn hay không (ví dụ: Khoảng cách điểm cực trị <= 5 pixel VÀ độ dốc đường xấp xỉ bằng nhau).
Để giảm thiểu tác động của tiếng ồn có thể làm cho các đường kẻ của bạn xuất hiện lởm chởm gần các mẹo của chi nhánh (và do đó làm sai lệch ước tính độ dốc của bạn), bạn có thể thử áp dụng một bước đơn giản hóa cho Biểu đồ của mình (đây là một điểm khác (ngoài DFS ở trên) làm việc với cấu trúc đồ thị). Ví dụ, bạn có thể xóa các nút tiếp theo của Biểu đồ sẽ làm cho đường "uốn cong" ở các góc lớn hơn một số điểm bị cắt (đối với một cái gì đó phức tạp hơn, vui lòng xem tại đây ). Theo cách này, bạn sẽ điều chỉnh các đường "đơn giản" hơn, gần đúng với hướng của một phần lớn hơn của phân đoạn được hình thành bởi các pixel hình ảnh.
Điều đó có thể sẽ dẫn đến kết nối tốt cho phần lớn các trường hợp (đánh giá bằng hình ảnh bạn đã đăng) nhưng nó vẫn sẽ để lại cho bạn một số thách thức. Ví dụ, làm thế nào một mẫu bị gián đoạn hình chữ "Y" trong đó một trong các nhánh bị gián đoạn gần điểm kết nối được kết nối? (nghĩa là bạn có một đường cong "liên tục" phải được kết nối với một đoạn đường "hòa trộn" với nó). Có lẽ bạn có thể xem lại mức độ phổ biến của các trường hợp như vậy và sửa đổi các tiêu chí kết nối của bạn sau này.
Ngoài ra, có lẽ sẽ đáng để kiểm tra cách bạn có thể cải thiện việc thu thập hình ảnh của mình (ví dụ tăng độ phân giải).