Saya ingin merekonstruksi teks dari gambar berikut ini sebaik mungkin. Bagian yang sulit adalah saya ingin melakukannya hanya menggunakan operasi morforogis pada gambar
Saya mencoba menggunakan erosi, pelebaran, pembukaan dan penutupan tetapi hasilnya tidak terlalu bagus.
Apakah ini mungkin?
image-processing
morphological-operations
Jackobsen
sumber
sumber
Jawaban:
Jika Anda ingin menambah / mengurangi dll. Gambar yang ditransformasikan secara morfologis, Anda dapat menghitung berapa banyak piksel sinyal di sekitar setiap piksel, dan ambang batas berdasarkan angka itu.
Jika Anda berbelok dengan topeng 3x3 yang memiliki lubang di tengah, Anda bisa mendapatkan sesuatu seperti ini:
sumber
Ini masalah yang cukup menarik untuk dipecahkan! Coba filter median . Lihat referensi di sini dan di sini untuk lebih jelasnya.
Meskipun saya belum menempatkan tangan saya untuk mensimulasikan masalah Anda, ini adalah saran. Perasaan saya mengatakan bahwa itu mungkin memberi Anda manfaat besar karena, dikenal untuk melawan jenis kebisingan garam-lada. Dalam kasus Anda, gambar memiliki titik-titik putih ekstra di sekitar perbatasan yang akan dikonversi menjadi putih penuh atau hitam penuh tergantung pada sisi alfabet itu. Berikut ini tampilannya setelah pemfilteran median:
sumber
Jika karena alasan tertentu Anda terbatas menggunakan operasi morfologis, maka Anda dapat mempertimbangkan untuk menggunakan "skema pemungutan suara" dari operasi tertutup yang berorientasi.
Satu masalah dengan operasi morfologis adalah bahwa mereka tidak benar-benar mempertimbangkan directionality. Untuk piksel tengah, lingkungan seperti ini
benar-benar tidak berbeda dari lingkungan seperti ini
Hal itu dapat menyebabkan masalah karena pelebaran dan erosi tidak bias arah ketika Anda menginginkannya. Jadi satu hal yang dapat Anda lakukan adalah menemukan operasi morfologi bias yang paling sesuai arah menggunakan kernel seperti ini:
Ini akan lebih baik dengan kernel 5 x 5, tapi saya pikir idenya cukup jelas. Pada dasarnya, ide kernel deteksi sudut adalah peregangan sedikit sehingga merupakan kernel deteksi segmen garis. Anda juga dapat menggunakannya untuk menemukan kurva yang paling pas:
Jelas ini mengarah ke sejumlah besar kernel, tetapi jika ide dasar berfungsi menjanjikan bagi Anda, ada cara untuk mengoptimalkan teknik sehingga kernel yang paling cocok ditemukan dalam satu pass.
Bagaimanapun, jika Anda menggunakan banyak kernel dan beberapa logika, setiap operasi di (x, y) membutuhkan lebih banyak perhitungan daripada langkah morfologis tradisional:
Ukuran kernel harus dicocokkan dengan ukuran input. Daripada menggunakan kernel yang lebih besar, Anda bisa menggunakan kernel "spread" untuk mengurangi jumlah operasi. Kernel berikut ini hanya kernel 3 x 3 dengan radius lebih besar dari 1.
sumber