Itu tidak akan langsung jelas ... Anda bisa mencoba bekerja sepenuhnya dengan struktur Grafik. Pertama, ekstrak semua piksel yang terhubung dari gambar dan masukkan dalam Grafik di mana node tetangga terhubung dengan tepi. Anda bisa membuang Grafik yang lebih kecil dari sejumlah node M (untuk mengecualikan bintik-bintik kecil yang tidak relevan dengan gambar).
Pada akhir proses ini, Anda akan memiliki satu set Grafik terputus. (Menilai dari gambar Anda, ini bukan Pohon karena ada siklus di sana)
Anda dapat menemukan titik-titik ekstrem dari masing-masing Grafik (piksel ekstrem di pinggiran setiap Grafik) dengan mulai dari beberapa simpul acak dan melakukan DFS .
Pada akhir proses ini, Anda akan memiliki seperangkat koordinat piksel untuk setiap Grafik yang sesuai dengan titik-titik ekstrem di mana koneksi lebih mungkin terbentuk.
Anda sekarang dapat mencoba menghubungkan tetangga titik ekstrim terdekat (dengan jarak <= 5) hanya dengan garis lurus.
Tetapi, jika Anda ingin memperhitungkan kemiringan segmen garis yang mengarah ke piksel ekstrem itu, Anda bisa mencoba "menyesuaikan garis" dengan N piksel SEBELUM untuk mencapai piksel ekstrem itu. Jadi jika N = 5, maka 5 piksel terakhir cabang akan digunakan dalam mengestimasi garis.
Oleh karena itu, untuk setiap pasangan tetangga terdekat Anda sekarang juga memiliki hal lain untuk digunakan sebagai kriteria untuk menilai apakah dua segmen harus terhubung (yaitu Jarak Titik Extremal <= 5 piksel DAN sekitar kemiringan garis yang sama).
Untuk meminimalkan dampak kebisingan yang dapat membuat garis Anda tampak bergerigi di dekat ujung cabang (dan karenanya mendistorsi estimasi kemiringan Anda), Anda dapat mencoba menerapkan langkah penyederhanaan pada Grafik Anda (ini adalah titik lain (selain DFS di atas) di mana ia membayar untuk bekerja dengan struktur Grafik). Misalnya Anda dapat menghapus node berikutnya dari Grafik yang akan membuat garis "tikungan" pada sudut lebih besar dari beberapa cut-off (untuk sesuatu yang lebih kompleks, silakan lihat di sini ). Dengan cara ini Anda akan menyesuaikan garis "sederhana", kira-kira dengan arah bagian yang lebih besar dari segmen yang dibentuk oleh piksel gambar.
Itu mungkin akan menghasilkan koneksi yang layak untuk sebagian besar kasus (dilihat dari gambar yang telah Anda posting) tetapi masih akan meninggalkan Anda dengan beberapa yang menantang. Misalnya bagaimana pola terputus berbentuk "Y" di mana salah satu cabang terputus di dekat titik koneksi dihubungkan? (yaitu, Anda memiliki tikungan "terus menerus" yang harus dihubungkan dengan segmen garis yang "menyatu" dengannya). Mungkin Anda dapat meninjau seberapa umum kasus tersebut dan merevisi kriteria koneksi Anda nanti.
Juga, mungkin ada baiknya memeriksa bagaimana Anda dapat meningkatkan akuisisi gambar Anda (meningkatkan resolusi misalnya).