Bagaimana cara mengenali warna dari bagan warna?

9

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.

masukkan deskripsi gambar di sini

Tae-Sung Shin
sumber
Hanya ingin tahu, di mana orang bisa mendapatkan bagan referensi warna seperti itu?
hotpaw2
@ hotpaw2 Seperti hampir selalu, google. Cari istilah "target it8"
Tae-Sung Shin

Jawaban:

4

Anda dapat menggunakan garis hough untuk mendeteksi area warna

  • Pertama-tama deteksi semua garis
  • Garis dengan panjang terpanjang akan menjadi yang paling luar
  • Pilih garis horizontal atas dan lakukan pencocokan templat untuk kotak.
  • Setelah Anda menemukan kotak, melintasi tol ke bawah Anda mencapai set kotak lainnya.
  • Tandai semua titik di mana kotak ditemukan
  • Anda sekarang memiliki area penutup untuk bagan warna.
Wajih
sumber
2

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.

hotpaw2
sumber
1

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.

Dipan Mehta
sumber
0

Mengapa tidak mencari batas grafik, bukan sudut? Anda dapat mencoba menggunakan detektor tepi dan kemudian menemukan garis lurus menggunakan Hough Transform.

Dima
sumber