Dalam proyek saya, saya harus mendigitalkan gambar EKG yang diambil dengan kamera normal (jpeg). Misalnya, saya memiliki gambar yang diambil kamera berikut:
dan saya ingin mendapatkan sesuatu seperti ini: -
dan kemudian data digital (x, poin y), seperti dalam video ini tentang digitalisasi EKG
Saya tidak tahu bagaimana melakukannya, jadi saya mencari dan berkonsultasi dengan beberapa makalah penelitian. Pendekatan umum dari algoritma adalah seperti: -
- ubah ke gambar level abu-abu
- hapus garis kisi
- tambahkan poin yang hilang
- Konversi gambar 2D ke gambar 1D
Saya terjebak dengan poin kedua, yaitu menghapus garis kisi. Saya mencari lebih banyak referensi untuk melakukan ini dan menemukan analisis histogram mungkin membantu.
Bisakah Anda membimbing saya tentang cara melakukan ini (saya menggunakan MATLAB 2010)? Bantuan apa pun akan dihargai.
image-processing
Deepak
sumber
sumber
Jawaban:
Maaf, saya menggunakan Mathematica, tetapi seharusnya sangat mudah untuk mengimplementasikan ide ke Matlab. Saya tetap memberikan kode, jadi ketika uraian saya tidak cukup detail, Anda bisa mendapatkan sisanya dari kode.
Ide dasarnya adalah: Anda melihat kolom gambar Anda dengan bijaksana. Proses setiap kolom piksel secara terpisah. Perhatikan, bahwa dalam plot, saya membalikkan nilai abu-abu. Jadi hitam adalah 1 dan putih adalah 0.
Jika Anda merencanakan nilai piksel-kecerahan (terbalik), pada dasarnya Anda hanya memiliki dua situasi. Yang pertama adalah, ketika kolom Anda tidak pada garis kotak vertikal. Plotnya terlihat seperti
Situasi kedua adalah, di mana Anda berada langsung pada garis kisi vertikal. Kemudian garis grid mempengaruhi kecerahan seluruh kolom
Tapi yang Anda lihat adalah, bahwa EEG gelap Anda tampaknya selalu maksimal. Oleh karena itu, algoritma yang sangat kompleks adalah: Telusuri setiap kolom dan ambil posisi piksel paling hitam.
Perhatikan, bahwa saya memangkas sedikit sisi kanan gambar Anda, karena gambar itu benar-benar putih di sana. Hasilnya adalah
Sekarang Anda dapat bergabung dengan poin atau menginterpolasi mereka dalam setiap cara yang Anda suka dan Anda mendapatkan EEG Anda
sumber
Anda memiliki gambar warna di mana garis kisi berwarna merah dan jejaknya berwarna hitam. jadi abaikan saja piksel yang berwarna merah!
Jika Anda tidak dapat memastikan gambar benar-benar selaras, Anda dapat menggunakan garis kisi untuk menghitung kemiringan (cukup kemiringan gambar dalam piksel / piksel saat Anda ke kanan).
Kemudian mengubah jejak hitam menjadi nilai 1d sederhana. Mulai di kolom pertama di tepi kiri dan temukan piksel hitam (atau centroid dari sekelompok kecil piksel yang terhubung) - posisi vertikal adalah nilai Anda.
Lakukan itu untuk setiap kolom pada gambar.
Di mana Anda memiliki nilai yang hilang, Anda perlu melakukan interpolasi antara nilai yang diketahui sebelum dan sesudah.
Untuk poin tambahan, Anda dapat menetapkan batas seberapa banyak jejak dapat berubah dari kolom-kolom untuk memungkinkan Anda melihat titik-titik acak atau lonjakan kebisingan.
sumber