Konversi gambar garis dari raster ke vektor ** LINES **

16

Ini sudah ada pertanyaan seperti itu, seperti:

... dan lain-lain.

Saya memiliki gambar B&W png, berisi gambar seperti labirin, misalnya hanya berisi garis , tidak ada area.

Perlu mengubahnya menjadi format vektor (apa saja), tetapi sebagai LINES . Setiap program apa yang saya coba, misalnya VectorMagic, potrace dll. Mengubah garis menjadi area jalur tertutup.

Sebagian kecil dari gambar PNG asli - diperbesar: masukkan deskripsi gambar di sini

Hasil penelusuran: masukkan deskripsi gambar di sini

Seperti yang Anda lihat, "garis" dilacak dari kedua sisinya seperti bentuk area lainnya.

Mencari cara, cara melacak garis ke garis nyata (PATHS) , paling baik dengan lebar garis yang cocok. (tapi akan cukup dengan garis apa pun).

Alasan di balik: perlu bekerja dengan garis dan node yang ditelusuri, misalnya mengonversi beberapa node menjadi bezier dan seperti. Tidak mungkin (mudah) dengan bentuk.

Ada ide:

  • cara mendapatkan garis vektor dari program penelusuran apa pun.
  • alat mana yang bisa melakukan ini? (OS apa saja - dapat menggunakan Windows, OS X, Linux ..)
jm666
sumber

Jawaban:

15

Pelacakan Garis Tengah

Ada alat Open Source gratis AutoTrace yang mampu melakukan jejak garis tengah dari bitmap garis-seni.

masukkan deskripsi gambar di sini

Jalankan AutoTrace dengan setidaknya opsi berikut:

autotrace -centerline -color-count 2 -output-file output.svg -output-format SVG input.png 

masukkan deskripsi gambar di sini

Kita kemudian dapat menyesuaikan stroke dan menambahkan kekuatan stroke yang diinginkan ..

Kami juga dapat menginstal Frontline frontend grafis untuk AutoTrace jika kami tidak terbiasa dengan baris perintah.

Pengguna Linux mungkin dapat menginstal autotrace yang disediakan dari repositori default mereka di sebagian besar distribusi. Untuk Windows ada paket yang telah dikompilasi untuk diunduh dari halaman proyek.

Ada banyak parameter tambahan untuk AutoTrace yang dapat ditemukan di halaman manual aplikasi atau dengan memanggilnya autotrace -help.

Untuk mendapatkan garis lurus daripada splines, misalnya kita dapat menggunakan parameter berikut:

  • -line-threshold [real]:
    Jika spline tidak menyimpang dari garis lurus yang ditentukan oleh titik akhir lebih dari jumlah piksel yang ditentukan, maka memperlakukannya sebagai garis lurus (default: 1).

  • - line-reversion-threshold [real]:
    Jika spline lebih dekat ke garis lurus daripada ini, ditimbang oleh kuadrat dari panjang kurva, pertahankan garis lurus meskipun itu adalah daftar dengan kurva; standarnya adalah .01.

Takkat
sumber
1
+1 Tahukah Anda jika ada opsi untuk melacak hanya membuat segmen lurus dengan autotrace.
joojaa
@ joojaa: lihat edit untuk opsi.
Takkat
Saya berharap saya bisa mendapatkan autotrace untuk membangun ... Saya ingin menggunakan ini
slashdottir
1
@ slashdottir: sistem apa yang Anda gunakan? Situs proyek pindah ke Github untuk pengembangan baru-baru ini dan untuk laporan bug. Saya mengedit jawaban untuk menyertakan tautan.
Takkat
Oh, brilian! Saya menggunakan OSX. Terima kasih banyak untuk tautannya!
slashdottir
9

Jujur saja ... ambil alat pena dan lacak jejaknya secara manual . Ini akan menghasilkan output terbaik .

Pelacakan otomatis seringkali bukan pilihan terbaik. Ketika Anda hanya menginginkan jalur yang dapat Anda tempuh, penelusuran otomatis umumnya gagal total.

Scott
sumber
gambarnya benar-benar COMPLEX dengan banyak-banyak garis. Juga memiliki lebih banyak gambar - terlalu banyak pekerjaan - mencari alternatif ...;)
jm666
juga saya berharap daripada "alat" akan melakukan beberapa optimasi, misalnya akan membuat selalu jalur terpanjang dan seterusnya ... pekerjaan manual tidak selalu yang terbaik;)
jm666
Semoga berhasil! Saya benar-benar berpikir apa yang Anda minta hanya membutuhkan keterampilan manual dan kesabaran. Saya belum pernah melihat solusi otomatis yang bermanfaat dalam menciptakan jalur tunggal. Saya pikir Anda mencari yang tidak mungkin dengan jujur.
Scott
2
@scott sementara saya secara umum setuju dengan sentimen Anda dalam kasus khusus ini mungkin berhasil.
joojaa
5

Coba gunakan Jalur Interpolasi setelah penelusuran Anda, seperti yang ditunjukkan di sini:

Stroke rata-rata dari isi

Sean
sumber
WOW. Ini terlihat SANGAT menjanjikan. Terima kasih! +1.
jm666
@ jm666 tentu saja metode ini tidak akan terotomatisasi dengan baik kecuali jika Anda berurusan dengan jalur yang berkelanjutan.
joojaa
5

Illustrator dapat melakukan pelacakan garis tengah seperti autotrace . Ini tidak super berguna untuk kebanyakan hal tetapi dalam hal ini gambarnya sangat sintetis dan mungkin berfungsi.

Gambar sumber Anda terkenal buruk sehingga tidak ada cara nyata untuk mencoba ini tanpa kehilangan kualitas, dokumen asli Anda harus lebih baik (tidak perlu diperbesar)

Melakukan hal ini:

  1. Dalam pengaturan jejak, nonaktifkan isi dan aktifkan stroke.

  2. Obyek → Perluas

masukkan deskripsi gambar di sini

Gambar 1 : Objek setelah jejak dan perluas.

  1. Untuk lebih meningkatkan hasil dari setiap kesalahan penelusuran lakukan: Obyek → Jalur → Sederhanakan , periksa tepi lurus.

masukkan deskripsi gambar di sini

Gambar 2 : Setelah penyederhanaan

  1. Menurut saya gambar Anda agak terbatas pada arah garis, dan menyudutkan lokasi, jika itu benar, Anda sekarang dapat mencoba untuk menghitung titik untuk hasil yang lebih baik (jika tidak sempurna).

masukkan deskripsi gambar di sini

Gambar 3 : Apa yang dilakukan kuantisasi terhadap hasilnya.

PS: mengingat bahwa sumber yang Anda bagikan tidak lengkap saya akan mengatakan hasil saya cukup bagus. Meskipun saya setuju bahwa secara umum tidak mungkin untuk bergantung pada pelacakan garis akan berfungsi dalam kasus ini.

PPS: Sudut Anda tumpang tindih, ini menyebabkan pelacak otomatis beberapa kesedihan. Anda dapat mendeteksi dan memperbaikinya dengan beberapa operator Morfologi di katakanlah ImageMagick yang seharusnya membuat pelacak JAUH lebih bahagia.

joojaa
sumber
Juga bagus. Sekarang menggunakan autotrace, karena penggunaan baris perintah yang sederhana - untuk banyak gambar. Gambar bitmap di atas adalah bagian kecil dari gambar yang lebih besar (1300% zoom) :) - oleh karena itu terlihat rusak. +1, terima kasih.
jm666
@ jm666 tentu saja, Anda juga dapat menggunakan ilustrator dari cmd jika Anda mau, tetapi ini sedikit pekerjaan untuk memulai.
joojaa
Saya mencoba dengan jejak gambar Illustrator dan sampel hanya menggunakan stroke. Saya tidak dapat memperoleh hasil yang dapat digunakan. Memang saya tidak menginvestasikan banyak waktu untuk itu, dan sampel tidak ideal untuk ditelusuri. Tapi saya menemukan secara umum pengaturan jejak AI hanya stroke berarti Anda hanya mendapatkan 30-60% dari karya seni yang sebenarnya dilacak kecuali jika aslinya cukup solid dan tajam sebelum ditelusuri.
Scott
@Scott saya menyusutkan gambar kembali ke ukuran (ish) asli dan parameter lebar garis disesuaikan sehingga hanya berfungsi. Ketika Anda melacak goresan dengan lebar berbeda, Anda mungkin perlu melakukannya dalam 2 atau 3 lintasan terpisah.
joojaa
2

Saya menemukan Alat freeware yang bagus bernama WinTopo , yang bagi saya melakukan pekerjaan itu, yaitu pelacakan garis tengah.

Metode ini disebut "vektorisasi satu sentuhan" dan berfungsi dengan baik.

Karena saya berasal dari konteks GIS - dalam versi pro ada pilihan untuk Georeferensi data raster pertama - bisa berguna, belum diuji.

ORiAX
sumber