Saya mengembangkan aplikasi penglihatan yang menggunakan bagan warna di bawah ini dan kamera untuk mengekstraksi warna setiap patch dalam bagan. Untuk melakukan itu, saya harus terlebih dahulu mendeteksi area bagan dalam gambar dan mencocokkan area dengan templat yang ada yang berisi lokasi tambalan.
Pertanyaan saya: Saya perlu mendeteksi area tambalan warna dengan mengenali empat sudut bagan. Anda dapat melihat sudut-sudut yang ditunjukkan oleh persegi panjang inset kecil pada gambar di bawah ini. Saya tahu salah satu cara untuk melakukannya adalah membiarkan pengguna memilih sudut-sudut itu dengan mengkliknya. Tetapi apakah ada cara untuk secara otomatis mendeteksi empat sudut dari gambar.
image-processing
Tae-Sung Shin
sumber
sumber
Jawaban:
Anda dapat menggunakan garis hough untuk mendeteksi area warna
sumber
Setiap larik 2D dari komponen warna (RGB, et.al.) adalah kontras yang cukup tinggi dan khas. Jadi saya mungkin mencoba menggunakan FFT 2D kompleks dari setiap komponen warna untuk menentukan skala dan offset gambar foto dibandingkan gambar referensi. Kemudian gunakan itu untuk mengatur koordinat sudut dan / atau tambalan yang diukur / diketahui pada gambar referensi untuk menghasilkan koordinat dalam foto.
Anda mungkin harus mengukur sendiri beberapa koordinat pada gambar referensi menggunakan editor bitmap.
sumber
Sebagai langkah pertama - saya akan menghapus semua kekacauan dengan abu-abu dan teks. Mulai dari keempat sisi saya akan berhenti sampai sebagian besar piksel adalah warna "abu-abu" yang dikenal secara unik.
Ini akan membuat Anda hanya memiliki papan checker yang terdiri dari berbagai warna. Anda mengharapkan sekitar 22x12 - sekitar 264 warna.
Metode paling sederhana adalah dengan menerapkan algoritma palatisasi yang lebih sederhana. Jika Anda harus menerjemahkan ini dalam gambar GIF - ini berlaku kuantisasi warna dengan setiap kelompok warna yang direpresentasikan sebagai warna centroid.
Ini akan secara khusus mudah dalam kasus Anda karena sumber sudah menjadi langit-langit dan Anda bisa menebak dengan baik untuk memulai.
Lihat ini:
NeuQuant: http://members.ozemail.com.au/~dekker/NEUQUANT.HTML
Kuantisasi Warna Oktree: http://www.cubic.org/docs/octree.htm . Lihat ini juga.
Ini hanya beberapa referensi; tetapi Anda akan menemukan kode siap pakai di sebagian besar perpustakaan yang menggunakan format gambar seperti itu. (BMP, PNG, dan GIF mendukung representasi semacam itu). Lihat juga libpng dan libjpeg untuk beberapa implementasi cepat.
sumber
Mengapa tidak mencari batas grafik, bukan sudut? Anda dapat mencoba menggunakan detektor tepi dan kemudian menemukan garis lurus menggunakan Hough Transform.
sumber