Algoritma dasar untuk pemrosesan gambar. Algoritme prapemrosesan gambar Prapemrosesan gambar

Digital noise adalah cacat citra yang terletak secara acak pada area yang mendekati ukuran piksel dan berbeda dari citra aslinya dalam kecerahan atau warna. Pengurangan noise memainkan peran penting dalam transmisi, pemrosesan, dan kompresi urutan video dan gambar.

Kebisingan video dapat terjadi karena beberapa alasan:

1. Peralatan pengambilan video yang tidak sempurna.

2. Kondisi pemotretan yang buruk - misalnya, pemotretan foto / video malam hari, pemotretan dalam cuaca buruk.

3. Gangguan selama transmisi melalui saluran analog - gangguan dari sumber medan elektromagnetik, kebisingan intrinsik dari komponen aktif (penguat) dari saluran transmisi. Contohnya adalah sinyal televisi.

4. Ketidakakuratan dalam pemfilteran saat mengekstraksi sinyal pencahayaan dan perbedaan warna dari sinyal komposit analog, dll.

Jumlah noise dalam suatu gambar dapat berkisar dari titik yang hampir tidak terlihat dalam foto digital yang diambil dalam cahaya yang baik, hingga gambar astronomis, di mana noise mengaburkan banyak informasi berguna yang hanya dapat diperoleh melalui pemrosesan gambar yang melelahkan.

Ada berbagai jenis noise, tergantung pada sifat distribusi acak dari noise pada gambar. Dalam praktiknya, jenis berikut paling umum:

Kebisingan Gaussian Putih

Salah satu derau yang paling umum adalah derau Gaussian aditif, yang ditandai dengan penambahan nilai dengan distribusi normal dan rata-rata nol untuk setiap piksel dalam suatu gambar. Istilah "tambahan" berarti bahwa jenis kebisingan ini ditambahkan ke sinyal yang berguna. Terjadi bila penerimaan sinyal buruk.

Kebisingan digital

Penyebab gangguan digital paling sering dikaitkan dengan kekhasan peralatan yang digunakan untuk pemotretan - biasanya dengan sensitivitas cahaya matriks yang tidak mencukupi. Jenis noise ini ditandai dengan penggantian beberapa piksel pada gambar dengan nilai nilai tetap atau acak. Jika kecerahan titik kira-kira sama, gangguan digital juga disebut "impuls". Jika intensitas titik-titik dapat bervariasi dari hitam ke putih, kebisingan ini disebut kebisingan garam dan merica.

Biasanya, jenis noise ini hanya memengaruhi sejumlah kecil piksel dalam sebuah gambar.

Kebisingan gabungan

Kasus-kasus ketika gambar dalam volume yang sama berisik dengan noise Gaussian dan pulsa acak jauh lebih jarang terjadi. Himpunan ini disebut derau gabungan.

Cacat pemindaian gambar

Juga, efek asing dapat muncul pada gambar, seperti retak, goresan, memar. Artefak ini tidak memiliki struktur yang homogen, dan penentuan bentuk dan lokasinya sebagian besar berada di luar analisis matematis. Cacat semacam ini hanya dapat ditangani dengan pemrosesan gambar manual; oleh karena itu, cacat tersebut tidak dipertimbangkan dalam pekerjaan ini.

Algoritma Penghilang Kebisingan

Ada banyak algoritma untuk menghilangkan noise dari gambar, dan mereka dapat digunakan tidak hanya oleh program pemrosesan khusus, tetapi juga oleh beberapa kamera foto dan video. Meskipun demikian, masih belum ada algoritme pemfilteran universal, karena saat memproses gambar, selalu ada kebutuhan untuk memilih antara tingkat penghapusan efek yang tidak diinginkan dan pelestarian detail kecil yang memiliki karakteristik yang mirip dengan noise. Selain itu, algoritme yang dengan mudah mengatasi satu jenis noise hanya dapat merusak gambar dengan jenis noise lainnya.

Mari kita pertimbangkan beberapa algoritme peredam bising gambar yang paling terkenal.

Rata-rata piksel linier

Ide paling sederhana untuk menghilangkan noise adalah dengan meratakan nilai piksel di lingkungan spasial. Karena noise berubah secara independen dari piksel ke piksel, noise piksel yang berdekatan akan saling meniadakan saat ditambahkan. Jendela persegi panjang ditentukan, yang ditumpangkan pada setiap piksel gambar secara bergantian. Nilai piksel pusat dihitung berdasarkan analisis semua piksel tetangga yang termasuk dalam area jendela. Dengan demikian, semakin besar jendela yang diambil, semakin banyak nilai rata-rata yang akan diperoleh pada akhirnya, yang mengarah pada efek buram yang kuat.

Dalam versi paling sederhana, analisis piksel tetangga adalah menemukan mean aritmatikanya. Untuk mengurangi pengaruh piksel yang tidak termasuk dalam area yang sama dengan yang sedang dipertimbangkan (misalnya, garis gelap pada latar belakang terang), Anda dapat memasukkan ambang numerik tertentu dan memperhitungkan saat menghitung hanya tetangga yang perbedaannya dari piksel pusat tidak melebihi ambang batas ini. Semakin tinggi nilai ambang batas, semakin kuat rata-rata akan terjadi. Opsi yang dipertimbangkan dapat menjadi rumit dengan memasukkan koefisien bobot untuk setiap piksel tetangga tergantung pada jaraknya ke pusat area yang dipertimbangkan.

Metode ini juga dapat diterapkan dalam domain waktu, rata-rata setiap piksel di atas bingkai yang berdekatan dari aliran video (setiap piksel akan dirata-ratakan atas piksel yang terletak pada posisi yang sama dalam bingkai yang berdekatan).

Algoritme ini sangat sederhana, tetapi tidak memberikan hasil yang baik, pada saat yang sama menyebabkan pengaburan detail gambar yang kuat.

Filter Gauss

Ini memiliki prinsip operasi yang mirip dengan metode sebelumnya dan juga termasuk dalam jumlah filter pemulusan. Namun, pengurangan kebisingan menggunakan filter rata-rata linier memiliki kelemahan yang signifikan: semua tetangga piksel yang diproses memiliki efek yang sama pada hasil, terlepas dari jaraknya. Filter Gaussian juga merata-ratakan piksel pusat dan tetangganya di area tertentu, hanya saja ini terjadi menurut hukum tertentu, yang ditetapkan oleh fungsi Gaussian.

Dimana parameter y mengatur jumlah blur dan parameter A menyediakan normalisasi. Akibatnya, piksel pusat dari area yang dipertimbangkan akan memiliki nilai tertinggi sesuai dengan puncak distribusi Gaussian. Nilai elemen lainnya akan semakin berkurang pengaruhnya seiring dengan bertambahnya jarak dari pusat.

Filter matriks yang dihitung menurut rumus yang ditunjukkan disebut Gaussian; semakin besar ukurannya, semakin kuat blur (dengan y tetap). Karena filter ini dapat dipisahkan, filter ini dapat direpresentasikan sebagai:

Oleh karena itu, konvolusi dapat dilakukan secara berurutan oleh baris dan kolom, yang mengarah pada percepatan metode yang signifikan untuk ukuran filter yang besar.

Algoritma 2Dcleaner

Mengganti setiap piksel dalam gambar dengan rata-rata piksel tetangga yang diambil di area yang dibatasi oleh radius tertentu. Dalam hal ini, tidak semua titik dalam radius dipertimbangkan, tetapi hanya titik yang nilainya berbeda dari piksel pusat tidak lebih dari beberapa nilai yang telah ditentukan (ambang batas). Hal ini menyebabkan area yang berwarna seragam menjadi lebih buram daripada tepi objek yang tajam. Ini mengurangi noise tingkat rendah pada gambar sekaligus menjaga detail halus tetap utuh.

Pemfilteran median

Algoritme linier ternyata sangat efektif dalam menekan noise Gaussian, ketika piksel tetangga, meskipun memiliki penyebaran nilai acak tertentu, masih tetap dalam karakteristik nilai rata-rata tertentu dari wilayah tempat mereka berada. Namun, terkadang Anda harus berurusan dengan gambar yang terdistorsi oleh jenis gangguan lainnya. Contoh gangguan tersebut adalah derau impuls, yang memanifestasikan dirinya dengan adanya titik-titik kecerahan acak yang tersebar secara acak dalam gambar. Rata-rata dalam hal ini "mengoleskan" setiap titik tersebut ke piksel tetangga, yang menyebabkan penurunan kualitas gambar.

Cara standar untuk menekan kebisingan impuls adalah penyaringan median. Teknik pemrosesan gambar non-linear ini menghilangkan outlier, tetapi, tidak seperti algoritma rata-rata linier, membiarkan urutan piksel monoton tidak berubah. Karena itu, filter median mampu mempertahankan tanpa distorsi kontur objek dan perbedaan antara area kecerahan yang berbeda, sementara secara efektif menekan noise yang tidak berkorelasi dan detail berukuran kecil.

Prinsip penyaringan: Jendela tertentu dengan ukuran ganjil diatur, yang secara berurutan ditumpangkan pada setiap piksel gambar. Di antara semua piksel dalam area yang dipertimbangkan, termasuk yang di tengah, nilai median dicari, yang akhirnya ditetapkan ke piksel pusat dari area tersebut. Dalam hal ini, median berarti elemen median dari larik nilai piksel yang diurutkan milik wilayah tersebut. Ukuran jendela ganjil dipilih dengan tepat untuk memastikan keberadaan piksel median.

Dimungkinkan untuk menggunakan filter median untuk menekan noise Gaussian putih pada gambar. Namun, studi peredaman kebisingan dengan menggunakan median filtering menunjukkan bahwa efektivitasnya dalam menyelesaikan masalah ini lebih rendah dibandingkan dengan linear filtering.

Pemfilteran median bukannya tanpa kerugian yang melekat pada sebagian besar filter peredam bising - meningkatkan ukuran topeng untuk meningkatkan tingkat penekanan kebisingan menyebabkan penurunan kejernihan gambar dan pengaburan konturnya. Namun, efek negatif dapat diminimalkan dengan menerapkan pemfilteran median dengan ukuran topeng dinamis (penyaringan median aditif).Prinsipnya tetap sama, hanya ukuran jendela pemfilteran geser yang dapat berubah tergantung pada kecerahan piksel tetangga.

Mempertajam gambar

Hampir semua algoritme untuk menekan noise pada gambar menyebabkan keburamannya, akibatnya, detail kecil hilang, dan persepsi gambar menjadi sulit. Filter penajaman gambar sebagian dapat mengkompensasi efek negatif ini dan mengembalikan kontras kontur dan transisi warna yang hilang. Ketajaman juga dapat bergantung pada banyak faktor lain - pada kualitas lensa, pada apertur yang digunakan, pada ketebalan filter anti-moire yang terdapat pada matriks sebagian besar kamera digital, mengaburkan gambar ke berbagai derajat. Selain itu, ketajaman gambar sering kali perlu ditingkatkan setelah mengurangi ukurannya, karena hal ini pasti akan kehilangan sebagian informasi dan juga kejelasan kontur.

Unsharp masking adalah teknik yang memungkinkan dengan meningkatkan kontras transisi antara nada gambar untuk meningkatkan persepsi visualnya karena ilusi penajaman. Faktanya, ketajaman tetap pada tingkat yang sama, karena, pada prinsipnya, tidak mungkin mengembalikan detail gambar yang hilang, tetapi meningkatkan kontras antara area dengan kecerahan berbeda mengarah pada fakta bahwa gambar dianggap lebih jelas.

Gambar 5.1 - Ilustrasi konsep "ketajaman kontur"

Ketajaman bayangan tergantung pada besarnya perbedaan kecerahan antara area (W) yang membentuk konturnya, dan pada ketajaman perubahan perbedaan ini (H).

Teknik unsharp masking pertama kali digunakan untuk memproses foto film. Metode yang disesuaikan untuk pemrosesan gambar digital sedikit berbeda dari yang asli: apa yang disebut "topeng unsharp" dikurangi dari gambar - salinannya kabur dan terbalik. Hasilnya adalah gambar baru yang hanya berisi garis cahaya dari aslinya. Garis gelap dapat diperoleh hanya dengan membalikkan hasilnya.

Jika di masa depan Anda mengurangi garis gelap dari gambar asli dan menambahkan yang terang, Anda mendapatkan peningkatan kontras yang signifikan pada setiap perbedaan kecerahan.

Anda dapat menggunakan salah satu filter peredam bising, seperti filter Gaussian, untuk memburamkan dokumen asli guna mendapatkan "topeng unsharp".

Gambar 5.2 - Hasil penerapan unsharp masking

Operasi konvolusi cukup sering digunakan dalam pengolahan citra. Selain mengasah, digunakan untuk mengaburkan, meningkatkan kecerahan, mencerahkan, dll.

Konvolusi gambar adalah operasi penghitungan nilai baru dari piksel tertentu, yang memperhitungkan nilai piksel tetangga di sekitarnya. Dalam pengertian umum, istilah ini berarti beberapa tindakan yang dilakukan pada setiap bagian dari gambar.

Elemen utama dari konvolusi adalah topeng konvolusi - ini adalah matriks (dengan ukuran dan rasio aspek yang berubah-ubah). Topeng ini sering disebut sebagai filter, kernel, pola, atau jendela. Nilai elemen matriks biasanya disebut koefisien.

Paling sering, matriks persegi digunakan sebagai kernel konvolusi.

Pemrosesan gambar dengan operasi konvolusi adalah sebagai berikut: Elemen pusat dari matriks, yang disebut "jangkar", secara berurutan ditumpangkan pada setiap piksel gambar. Nilai baru dari piksel yang dipertimbangkan dihitung sebagai jumlah dari nilai piksel tetangga, dikalikan dengan koefisien yang sesuai dari topeng konvolusi.

Efek yang dihasilkan tergantung pada kernel konvolusi yang dipilih.

Inti dari filter penambah kontras memiliki nilai lebih besar dari 1 pada titik (0, 0), dengan jumlah total semua nilai sama dengan 1. Misalnya, filter penambah kontras adalah filter dengan kernel yang ditentukan oleh matriks:

Efek peningkatan kontras dicapai dengan fakta bahwa filter menekankan perbedaan antara intensitas piksel yang berdekatan, menghilangkan intensitas ini satu sama lain. Efek ini akan semakin kuat, semakin besar nilai suku pusat nukleus.

Pemfilteran kontras linier berbasis konvolusi dapat menyebabkan lingkaran cahaya warna yang terlihat di sekitar tepi gambar.

Kompensasi Selisih Iluminasi

Masalah penerangan gambar paling sering terjadi ketika jendela, matahari, atau sumber cahaya lain yang tidak diatur memasuki bingkai.

Situasi ini disebut "cahaya berlebih" dan mengarah pada fakta bahwa, karena pencahayaan penopang yang terlalu terang, detail dan warna objek yang terletak di latar belakang objek yang terlalu terang akan hilang, menjadi sulit untuk dibedakan.

Situasi kekurangan cahaya juga biasa terjadi. Hal ini dapat disebabkan oleh pengambilan gambar di ruangan gelap dengan pencahayaan yang buruk, serta terbatasnya jangkauan sensitivitas peralatan video.

Algoritma Retinex Skala Tunggal

Saat Anda mencoba untuk mencerahkan gambar dengan meningkatkan kecerahan setiap piksel dengan nilai tetap tertentu, area yang awalnya terang mungkin benar-benar padam.

Dalam kasus seperti itu, diperlukan untuk menerapkan koreksi warna "pintar", yang akan mampu menyamakan pencahayaan pada gambar, memproses area terang pada tingkat yang lebih rendah daripada yang gelap.

Persyaratan ini dipenuhi oleh algoritma Retinex Skala Tunggal, berdasarkan prinsip-prinsip desain reseptor retina. Tujuan utama dari algoritma ini adalah untuk membagi gambar menjadi komponen yang bertanggung jawab untuk pencahayaan dan detail secara terpisah. Karena masalah pada gambar terkait dengan pencahayaan pemandangan, maka, setelah menerima komponen yang bertanggung jawab atas pencahayaan, menjadi mungkin untuk mengubahnya secara terpisah dari gambar, sehingga meningkatkan kualitasnya secara signifikan.

Gambar apa pun dapat direpresentasikan sebagai produk dari sinyal frekuensi tinggi (refleksi - R) dan sinyal frekuensi rendah (penerangan - I).

S (x, y) = I (x, y) * R (x, y) (5.6)


Gambar 5.3 - Representasi gambar dalam algoritma Retinex.

Gambar perkiraan pencahayaan dapat diperoleh dengan menggunakan penyaringan low-pass - dengan kata lain, cukup mengaburkan gambar asli, misalnya, dengan filter Gaussian.

di mana G - filter Gaussian

Karena logaritma sinyal tidak mengubah frekuensi, dan karena sifat-sifat fungsi logaritma (logaritma produk sama dengan jumlah logaritma faktor), masalah pembagian produk sinyal dapat menjadi disederhanakan menjadi masalah pembagian jumlah sinyal.

Setelah itu, tinggal mengambil eksponen dari sinyal yang diterima untuk mengembalikannya ke skala amplitudo asli. Komponen frekuensi tinggi yang dihasilkan dapat ditambahkan ke gambar asli yang diburamkan dan diringankan, yang berfungsi sebagai model cahaya baru.

Efek yang diperoleh dari menyamakan iluminasi mungkin terlalu kuat (area gelap akan menjadi sama kecerahannya dengan yang terang). Untuk mengurangi efeknya, Anda cukup memadukan gambar hasil olahan dengan aslinya dalam proporsi tertentu.

Koreksi gamma

Tujuan asli dari koreksi gamma adalah untuk mengkompensasi perbedaan warna yang ditampilkan pada perangkat output yang berbeda sehingga gambar terlihat sama saat dilihat pada monitor yang berbeda. Karena tampilan non-linier dari fungsi daya yang diterapkan, koreksi gamma juga memungkinkan Anda meningkatkan kontras area gelap gambar, tanpa mengekspos detail terang secara berlebihan dan tanpa kehilangan daya pembeda tepi objek dalam gambar.

Informasi tentang kecerahan dalam bentuk analog di televisi, serta dalam bentuk digital dalam format grafik yang paling umum, disimpan dalam skala non-linier. Kecerahan piksel pada layar monitor dapat dianggap proporsional

di mana I adalah kecerahan piksel pada tampilan layar (atau kecerahan komponen warna, merah, hijau, dan biru secara terpisah),

V adalah nilai numerik warna dari 0 hingga 1, dan

d - indikator koreksi gamma.

Jika r kurang dari 1, maka karakteristik transmisi level akan cembung dan gambar yang dihasilkan akan lebih terang dari aslinya. Jika r lebih besar dari 1, maka karakteristik transfer level akan cekung dan gambar yang dihasilkan akan lebih gelap dari aslinya.

Secara default, parameter r sama dengan 1, yang sesuai dengan karakteristik linier dari transmisi level dan tidak adanya koreksi gamma.

Memilih kontur gambar

Analisis kontur dapat digunakan untuk menggambarkan, mengenali, membandingkan, dan mencari objek grafis yang direpresentasikan sebagai garis besar. Karena penggunaan kontur mengecualikan titik internal objek dari pertimbangan, ini dapat secara signifikan mengurangi kompleksitas komputasi dan algoritme dari operasi ini.

Gambar 5.4 - Perubahan bentuk fungsi daya tergantung pada parameter r

Garis objek adalah daftar titik-titik yang mewakili kurva tertentu pada gambar yang memisahkan objek dari latar belakang. Paling sering, lompatan kecerahan atau warna diamati di sepanjang kontur.

Untuk menyederhanakan pencarian kontur pada gambar, Anda dapat melakukan pra-binerisasi.

Filter Sobel memilih batas objek berdasarkan kecerahannya. Karena komponen warna tidak diperhitungkan, gambar harus terlebih dahulu dikonversi ke skala abu-abu.

Filter Sobel diterapkan secara berurutan ke setiap piksel, menghitung nilai perkiraan gradien kecerahannya. Gradien untuk setiap titik gambar (fungsi kecerahan) adalah vektor dua dimensi yang komponennya adalah turunan horizontal dan vertikal dari kecerahan gambar.

Pada setiap titik gambar, vektor gradien diorientasikan ke arah peningkatan kecerahan terbesar, dan panjangnya sesuai dengan besarnya perubahan kecerahan. Data ini memungkinkan kita untuk membuat asumsi tentang kemungkinan menemukan titik yang dipertimbangkan pada batas objek tertentu, serta tentang orientasi batas ini.

Itu. hasil operasi operator Sobel pada suatu titik di wilayah kecerahan konstan akan menjadi vektor nol, dan pada titik yang terletak di perbatasan wilayah dengan kecerahan berbeda - vektor melintasi perbatasan ke arah peningkatan kecerahan.

Untuk menghitung nilai perkiraan turunan pada setiap titik pada citra, filter Sobel menggunakan konvolusi dengan matriks 3×3.

Koefisien matriks sobel:

Nilai akhir gradien dihitung dengan pendekatan dengan rumus:

| G | = | Gx | + | Gy |

Detektor Perbatasan Kenny

Meskipun pekerjaan Kenny dilakukan pada hari-hari awal visi komputer (1986), detektor batas Kenny masih merupakan salah satu detektor terbaik. Metode Kenny adalah algoritma multi-tahap, dan mencakup langkah-langkah berikut:

1. Membersihkan gambar dari noise dan detail yang tidak perlu.

2. Membersihkan gambar dari noise dan detail yang tidak perlu.

3. Cari gradien gambar, misalnya, dengan operator Sobel.

4. Penekanan non-maxima. Hanya tertinggi lokal yang ditandai sebagai batas.

5. Pemfilteran ambang ganda. Batas potensial ditentukan oleh ambang batas.

6. Lacak jalur (Tautkan tepi ke jalur)

Karena noise sekecil apa pun pada gambar dapat melanggar integritas konturnya, disarankan untuk memfilter gambar dengan metode pengurangan noise apa pun sebelum memulai pencarian. Karena kecepatan operasi yang tinggi dan kemudahan implementasi, filter Gaussian paling sering digunakan. Tepi gambar dapat berada dalam arah yang berbeda, sehingga algoritma Kenny menggunakan empat filter untuk mendeteksi tepi horizontal, vertikal, dan diagonal. Dengan menggunakan operator pendeteksi batas (misalnya, operator Sobel), diperoleh nilai turunan pertama pada arah horizontal (Gy) dan arah vertikal (Gx). Dari gradien ini Anda bisa mendapatkan sudut arah perbatasan:

Sudut arah batas dibulatkan ke salah satu dari empat sudut yang mewakili vertikal, horizontal, dan dua diagonal (misalnya, 0, 45, 90, dan 135 derajat). Hanya piksel-piksel yang mencapai maksimum gradien lokal dalam arah vektor gradien yang dinyatakan sebagai batas. Nilai arah harus kelipatan 45 °. Setelah menekan non-maxima, ujung-ujungnya menjadi lebih presisi dan tipis.

Pada langkah berikutnya, dengan penyaringan ambang batas untuk setiap piksel yang dipertimbangkan, ditentukan apakah itu termasuk dalam batas gambar. Semakin tinggi ambang batas, semakin seragam kontur yang ditemukan, namun tepi yang lemah dapat diabaikan. Di sisi lain, penurunan ambang batas meningkatkan kerentanan algoritma terhadap noise. Pemilihan batas Kenny menggunakan dua ambang penyaringan: jika nilai piksel lebih tinggi dari batas atas, dibutuhkan nilai maksimum (batas dianggap valid), jika lebih rendah, piksel ditekan, titik-titik dengan nilai yang berada dalam kisaran antara ambang mengambil nilai rata-rata tetap (mereka akan disempurnakan oleh langkah berikutnya).

Langkah terakhir dalam pemrosesan citra adalah mengikat masing-masing tepi menjadi kontur yang seragam. Piksel yang menerima rata-rata pada langkah sebelumnya akan ditekan (jika tidak menyentuh salah satu tepi yang sudah terdeteksi) atau dilampirkan ke kontur yang sesuai.

Segmentasi

Sebagian besar gambar yang diperoleh dari peralatan fotografi dan video adalah raster, yaitu terdiri dari titik-titik berwarna yang disusun dalam kotak persegi panjang. Namun, orang menganggap dunia di sekitar mereka sebagai kumpulan objek utuh, dan bukan matriks titik. Otak manusia mampu menggabungkan detail gambar yang berbeda ke dalam area yang homogen, tanpa sadar membaginya menjadi objek. Proses ini disebut segmentasi, dan dapat diimplementasikan secara terprogram ketika memecahkan masalah analisis citra komputer dan pengenalan pola. Segmentasi dilakukan pada tahap awal analisis, dan kualitas pelaksanaannya dapat berdampak kuat pada kecepatan dan akurasinya.

Metode segmentasi dapat dibagi menjadi dua kelas: otomatis - tidak memerlukan interaksi pengguna dan interaktif - menggunakan input pengguna secara langsung dalam proses.

Dalam kasus pertama, tidak ada informasi apriori tentang properti daerah yang digunakan, tetapi beberapa kondisi dikenakan pada partisi gambar itu sendiri (misalnya, semua daerah harus seragam dalam warna dan tekstur). Karena rumusan masalah segmentasi ini tidak menggunakan informasi apriori tentang objek yang digambarkan, metode kelompok ini bersifat universal dan dapat diterapkan pada gambar apa pun.

Untuk penilaian kasar kualitas metode dalam masalah tertentu, biasanya dicatat beberapa properti yang harus dimiliki oleh segmentasi yang baik:

keseragaman wilayah (keseragaman warna atau tekstur);

perbedaan wilayah tetangga;

kelancaran batas wilayah;

sejumlah kecil "lubang" kecil di dalam wilayah;

Segmentasi ambang batas

Ambang batas adalah metode paling sederhana yang berfokus pada pemrosesan gambar, area homogen individu yang berbeda dalam kecerahan rata-rata. Namun, jika gambar disinari secara tidak merata, beberapa objek mungkin memiliki intensitas yang sama dengan latar belakang, yang akan membuat segmentasi ambang batas tidak efektif.

Jenis segmentasi ambang yang paling sederhana dan sekaligus sering digunakan adalah segmentasi biner, ketika hanya dua jenis area homogen yang dibedakan dalam gambar.

Dalam hal ini, transformasi setiap titik gambar sumber menjadi output dilakukan sesuai dengan aturan:

di mana x0 adalah satu-satunya parameter pemrosesan yang disebut ambang batas. Tingkat kecerahan keluaran y0 dan y1 dapat sewenang-wenang, mereka hanya melakukan fungsi label, dengan bantuan peta yang dihasilkan ditandai - menetapkan poinnya ke kelas K1 atau K2, masing-masing. Jika produk yang dihasilkan sedang dipersiapkan untuk persepsi visual, maka seringkali nilainya sesuai dengan tingkat hitam dan putih. Jika ada lebih dari dua kelas, maka selama ambang batas, keluarga ambang batas harus diatur yang memisahkan kecerahan kelas yang berbeda satu sama lain.

Segmentasi ambang sangat cocok untuk memilih sejumlah kecil objek yang tidak berpotongan dalam gambar yang memiliki struktur homogen dan menonjol tajam dari latar belakang. Dengan peningkatan derajat heterogenitas gambar, dan karenanya jumlah segmen dan kompleksitasnya, jenis segmentasi ini menjadi tidak efektif.

Segmentasi berdasarkan pemisahan grafik

Metode teori graf adalah salah satu area yang paling aktif berkembang dalam segmentasi citra.

Gagasan umum tentang metode grup ini adalah sebagai berikut. Gambar disajikan dalam bentuk grafik berbobot, dengan simpul pada titik-titik gambar. Bobot suatu sisi dari suatu graf mencerminkan kesamaan titik dalam pengertian tertentu (jarak antar titik dalam metrik tertentu). Pemisahan gambar dimodelkan dengan pemotongan grafik.

Biasanya, dalam metode teori grafik, fungsi "biaya" pemotongan diperkenalkan, yang mencerminkan kualitas segmentasi yang diperoleh. Jadi masalah membagi citra menjadi area homogen direduksi menjadi masalah optimasi untuk menemukan potongan biaya minimum pada grafik. Pendekatan ini memungkinkan, selain keseragaman warna dan tekstur segmen, untuk mengontrol bentuk segmen, ukurannya, kompleksitas batas, dll.

Untuk menemukan pemotongan biaya minimum, berbagai metode digunakan: algoritma serakah (pada setiap langkah tepi seperti itu dipilih sehingga total biaya pemotongan minimal), metode pemrograman dinamis (dijamin bahwa dengan memilih tepi yang optimal pada setiap langkah, kita akan mendapatkan jalur optimal), algoritma Dijkstra, dll.

Interpolasi

Dalam komputer grafis, metode interpolasi sering digunakan dalam proses mengubah skala gambar. Dengan mengubah jumlah piksel pada gambar, interpolasi membantu menghindari pikselasi berlebihan pada gambar saat diperbesar atau hilangnya detail penting saat diperkecil.

Selama proses interpolasi, titik-titik tambahan disisipkan di antara piksel-piksel gambar, perkiraan nada dan warna yang dihitung menggunakan algoritma khusus berdasarkan analisis data yang tersedia di area tetangga. Sayangnya, karena interpolasi apa pun hanyalah perkiraan, gambar akan selalu kehilangan kualitas setiap kali diinterpolasi.

Interpolasi Tetangga Terdekat

Algoritma ini adalah jenis interpolasi yang paling sederhana, hanya meningkatkan setiap piksel gambar ke skala yang diperlukan. Membutuhkan waktu pemrosesan paling sedikit tetapi menghasilkan hasil yang terburuk.

Interpolasi bilinear

Jenis interpolasi ini dilakukan untuk setiap koordinat grid dua dimensi. Dalam hal ini, gambar dianggap sebagai permukaan, warna adalah dimensi ketiga. Jika citra berwarna, maka interpolasi dilakukan secara terpisah untuk tiga warna. Untuk setiap titik yang tidak diketahui dalam gambar baru, interpolasi bilinear mempertimbangkan kuadrat dari empat piksel yang diketahui di sekitarnya. Rata-rata tertimbang dari empat piksel ini digunakan sebagai nilai interpolasi. Hasilnya, gambar terlihat jauh lebih halus daripada hasil metode tetangga terdekat.

Interpolasi bilinear bekerja dengan baik pada faktor penskalaan bilangan bulat besar, tetapi cukup banyak mengaburkan tepi tajam gambar.

Interpolasi bikubik berjalan satu langkah lebih jauh daripada interpolasi bilinear, dengan mempertimbangkan susunan piksel sekitar 4x4 - hanya 16. Karena mereka berada pada jarak yang berbeda dari piksel yang tidak diketahui, piksel terdekat lebih berbobot dalam perhitungan. Interpolasi bicubic menghasilkan gambar yang jauh lebih tajam daripada dua metode sebelumnya, dan bisa dibilang optimal dalam hal waktu pemrosesan dan kualitas output. Untuk alasan ini, ini telah menjadi standar untuk banyak program pengeditan gambar (termasuk Adobe Photoshop), driver printer, dan interpolasi kamera internal.

Gambar yang diskalakan mungkin menjadi kurang tajam. Algoritme interpolasi yang mempertahankan ketajaman lebih baik juga lebih rentan terhadap moiré, sedangkan algoritma yang menghilangkan moiré cenderung menghasilkan hasil yang lebih lembut. Sayangnya, tradeoff penskalaan ini tidak dapat dihindari.

Salah satu cara terbaik untuk mengatasi hal ini adalah dengan menerapkan masker unsharp segera setelah penskalaan, meskipun aslinya telah diasah.

5.2 Alasan pemilihan algoritma yang digunakan dalam subsistem

Persyaratan utama untuk paket perangkat lunak yang dikembangkan adalah untuk meminimalkan penundaan pemutaran aliran video selama prapemrosesan pada cluster komputasi. Selain itu, pemotretan dapat dilakukan dalam kondisi apa pun, yang berarti bahwa dalam waktu singkat perlu menerapkan sejumlah besar filter sederhana untuk menetralisir berbagai efek negatif. Selain itu, perlu dalam waktu singkat untuk mempelajari sejumlah besar faktor negatif yang muncul di video dan menerapkan filter sederhana untuk menetralisirnya. Algoritma yang memenuhi persyaratan yang disajikan harus tersedia, dioptimalkan dengan baik, sangat andal dan, pada saat yang sama, mudah diimplementasikan. Fungsi perpustakaan OpenCV memiliki properti seperti itu, oleh karena itu, ketika memilih metode khusus untuk menerapkan filter untuk memproses aliran video, prioritas diberikan pada algoritme yang terkandung dalam perpustakaan ini dalam satu atau lain bentuk.

Semua algoritme yang dipertimbangkan dalam bagian teoretis dari pekerjaan kualifikasi akhir diimplementasikan dalam bentuk tes untuk membandingkan karakteristiknya dalam praktik. Khususnya, preferensi diberikan pada kompromi antara kecepatan pemrosesan bingkai aliran video dan kualitas hasil yang diperoleh.

Akibatnya, algoritme berikut dipilih untuk menerapkan filter untuk memproses aliran video pada cluster komputasi:

1. Untuk menghilangkan noise “additive white”, algoritma Gaussian dipilih. Sebagai metode pengurangan kebisingan yang paling umum, metode ini dioptimalkan dengan sangat baik dan oleh karena itu memiliki kecepatan operasi yang tinggi.

2. Untuk menghilangkan noise “additive white”, algoritma Gaussian dipilih. Sebagai metode pengurangan kebisingan yang paling umum, metode ini dioptimalkan dengan sangat baik dan oleh karena itu memiliki kecepatan operasi yang tinggi.

3. Untuk menghilangkan noise “impuls”, dipilih median filtering. Metode ini juga dioptimalkan dengan baik dan telah dirancang khusus untuk menghilangkan impuls dan kebisingan garam dan merica.

4. Convolution dipilih untuk meningkatkan ketajaman gambar, karena bekerja lebih cepat daripada unsharp masking, pada saat yang sama memberikan hasil yang dapat diterima.

5. Pustaka OpenCV tidak berisi algoritme koreksi warna - oleh karena itu diputuskan untuk menerapkan algoritme Retinex Skala Tunggal yang paling luas dan terdokumentasi dengan baik. Cara ini sangat efisien, namun membutuhkan optimasi untuk mempercepat kecepatan kerja.

6. Algoritma Kenny dipilih sebagai metode untuk mengekstraksi kontur, karena memberikan hasil yang lebih baik daripada filter Sobel.

7. Algoritma segmentasi piramida yang disajikan di perpustakaan OpenCV bekerja sangat lambat, jadi diputuskan untuk menggunakan algoritma segmentasi yang dibahas sebelumnya pada grafik.

8. interpolasi - metode interpolasi bikubik dipilih sebagai kompromi yang paling masuk akal antara kecepatan kerja dan kualitas hasil.

Instalasi dan konfigurasi perangkat lunak yang digunakan.

Cluster komputasi yang digunakan menjalankan GNU Linux (Ubuntu)

Setelah menginstal sistem operasi, Anda perlu menginstal beberapa perpustakaan yang mendukung membaca dan menulis file gambar, menggambar di layar, bekerja dengan video, dll.

Menginstal CMake

Proyek ini dibangun menggunakan CMake (versi 2.6 atau lebih tinggi diperlukan). Anda dapat menginstalnya dengan perintah:

apt-get install cmake

Anda mungkin juga memerlukan perpustakaan berikut:

build-essential libjpeg62-dev libtiff4-dev libjasper-dev libopenexr-dev libtbb-dev libeigen2-dev libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev

Menginstal ffmpeg

Agar opencv memproses file video dengan benar, perpustakaan ffmpeg harus diinstal. Ini dilakukan dengan perintah berikut:

1) Mengunduh kode sumber perpustakaan

wget http://ffmpeg.org/releases/ffmpeg-0.7-rc1.tar.gz

2) Membongkar arsip dengan kode sumber

tar -xvzf ffmpeg-0.7-rc1.tar.gz

3) Konfigurasi perpustakaan

konfigurasikan --enable-gpl --enable-version3 --enable-nonfree --enable-postproc

Aktifkan-libfaac --enable-libopencore-amrnb --enable-libopencore-amrwb

Aktifkan-libtheora --enable-libvorbis --enable-libxvid --enable-x11grab

Aktifkan-swscale --enable-shared

4) Membangun dan memasang perpustakaan

menginstal GTK

Menampilkan jendela OpenCV memerlukan GTK + 2.x atau pustaka yang lebih tinggi yang diinstal, termasuk file header (libgtk2.0-dev)

apt-get install libgtk2.0-dev

Menginstal Opencv

Setelah menginstal semua perpustakaan terkait, instalasi opencv2.2 dilakukan dengan perintah berikut:

1) Mengunduh kode sumber perpustakaan OpenCV

http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.2/OpenCV-2.2.0.tar.bz2

2) Membongkar arsip dengan kode sumber

tar -xvf OpenCV-2.2.0.tar.bz2

3) menghasilkan Makefile menggunakan CMake.

4) membangun dan menginstal perpustakaan OpenCV

5) Anda mungkin juga perlu mendaftarkan jalur ke perpustakaan

ekspor LD_LIBRARY_PATH = / usr / lokal / lib: $ LD_LIBRARY_PATH

Instalasi dan kompilasi paket perangkat lunak yang dikembangkan

Anda perlu menyalin kode sumber program dari disk yang dilampirkan pada catatan penjelasan ini. Salin file batch build_all.sh ke folder yang sama lalu jalankan. Jika kompiler gcc diinstal pada sistem, pembangunan akan terjadi secara otomatis.

DIGITAL PERLAKUAN SINYAL

Topik 17. PENGOLAHAN GAMBAR

Tidak ada apa-apa, tidak peduli apa imajinasi seseorang berani.

Titus Lucretius. Filsuf dan penyair Romawi. abad ke-1 SM e.

Imajinasi adalah hal yang baik. Tapi mengeluarkan gelandangan dari ruang bawah tanah, mencuci, berubah menjadi Apollo, mengemasi kotak korek api dan mengirim email dari teman ke teman, program grafis yang bagus akan lebih baik.

Anatoly Pyshmintsev, ahli geofisika Novosibirsk dari Sekolah Ural. abad XX

Pengantar.

1. Konsep dasar. Representasi grafis dari gambar. Representasi warna dalam grafik komputer. model warna RGB. Sistem warna CIE XYZ.

2. Transformasi geometris citra raster. Area dan tahapan transformasi. Contoh. Serangkaian interpolasi rekonstruksi sinyal dua dimensi. Distorsi frekuensi gambar dan penghapusannya. Pengambilan sampel ulang gambar.

3. Memfilter gambar. Filter linier. Filter penghalus. Filter Naik Kontras. Filter perbedaan. Konvolusi siklik dua dimensi. Filter non-linier. Penyaringan ambang. Penyaringan rata-rata. Filter ekstrim.

4. Kompresi gambar. Algoritma pengkodean Panjang Pengulangan (RLE). Algoritma kamus. Algoritma pengkodean statistik. Kompresi gambar yang hilang. Estimasi kehilangan gambar. Transformasi Fourier. Transformasi gelombang.

PENGANTAR

Ruang lingkup penelitian di bidang digital imaging berkembang pesat. Ini karena pemrosesan gambar adalah pemrosesan sinyal multidimensi, dan sebagian besar sinyal di dunia nyata bersifat multidimensi.


Gambar dalam representasi matematis adalah sinyal dua dimensi yang membawa sejumlah besar informasi. Gambar berwarna dengan elemen 500 × 500 adalah array beberapa ratus ribu byte. Informasi semacam itu hanya dapat diproses oleh organisasi perhitungan yang rasional. Untuk tugas pemrosesan gambar tertentu, teknik pemrosesan yang efisien dapat diterapkan, dengan mempertimbangkan karakteristik dan batasan tugas tertentu itu. Tetapi jika kita berbicara tentang pemrosesan gambar untuk memecahkan kelas masalah yang luas, maka perlu untuk memilih satu set operasi standar, dari mana dimungkinkan untuk membangun algoritma untuk memecahkan masalah yang sewenang-wenang. Ini termasuk transformasi linier, konvolusi 2D, dan transformasi Fourier diskrit 2D.

Namun, transformasi nonlinier juga banyak digunakan dalam pengolahan citra. Keunikan gambar adalah bahwa elemen individu gambar berada dalam hubungan tertentu dengan elemen tetangga. Oleh karena itu, sebagian besar algoritma konversi gambar bersifat lokal, yaitu, mereka memproses gambar dengan kelompok elemen yang terletak di lingkungan sekitar yang diberikan. Transformasi linier memenuhi properti lokalitas dan memungkinkan pembangunan algoritma, kompleksitas komputasi yang sedikit bergantung pada ukuran lingkungan sekitarnya. Properti yang sama diperlukan dari transformasi gambar nonlinier. Kelas transformasi tersebut termasuk algoritma yang disebut algoritma penyaringan peringkat berdasarkan perhitungan statistik peringkat lokal gambar. Saat menghitung statistik peringkat dan turunannya, penyederhanaan yang terkait dengan redundansi informasi gambar dimungkinkan. Algoritma yang paling terkenal dari kelas ini adalah algoritma penyaringan median. Contoh lain dari algoritma peringkat adalah algoritma penyaringan ekstrim yang menggantikan elemen gambar yang dianalisis dengan maksimum atau minimum dalam suatu lingkungan. Properti lain dari algoritma peringkat adalah adaptasi lokal terhadap karakteristik gambar yang diproses dan potensi penggunaannya tidak hanya untuk menghaluskan dan membersihkan dari noise, tetapi juga untuk ekstraksi fitur selama pengenalan gambar otomatis.

Dalam pemrosesan citra, metode untuk memproses sinyal satu dimensi banyak digunakan, jika memungkinkan untuk menggeneralisasikannya ke sinyal multidimensi. Pada saat yang sama, kita harus memperhitungkan bahwa metode matematika untuk menggambarkan sistem multidimensi tidak lengkap. Sistem multidimensi memiliki sejumlah besar derajat kebebasan, dan desainnya memperoleh fleksibilitas yang tidak melekat pada sistem satu dimensi. Pada saat yang sama, polinomial multidimensi tidak terurai menjadi faktor prima, yang memperumit analisis dan sintesis sistem multidimensi.

17.1. Konsep dasar

Representasi grafis dari gambar. Untuk merepresentasikan informasi grafik pada bidang dua dimensi (layar monitor), dua pendekatan digunakan: raster dan vektor.

Dalam pendekatan vektor, informasi grafis digambarkan sebagai kumpulan objek geometris abstrak - garis, segmen, kurva, persegi panjang, dll. Deskripsi vektor mengasumsikan pengetahuan apriori tentang struktur gambar.

Grafik raster beroperasi dengan gambar arbitrer dalam bentuk raster. Sebuah raster adalah deskripsi dari sebuah gambar di pesawat dengan membagi (diskritisasi) menjadi elemen identik pada grid biasa dan menetapkan warna sendiri dan atribut lainnya untuk setiap elemen. Raster paling sederhana berbentuk persegi panjang, yang paling ekonomis dalam hal jumlah sampel untuk transmisi gambar adalah heksagonal. Dari sudut pandang matematis, raster adalah aproksimasi konstan sepotong demi sepotong pada bidang fungsi gambar kontinu.

Elemen raster disebut piksel. Identifikasi standar piksel:


f (i, j) = (A (i, j), C (i, j)), (17.1.1)

di mana A (i, j) R2 - area piksel, C (i, j) C - atribut piksel (biasanya warna). Dua jenis atribut yang paling umum digunakan:

C (i, j) = I (i, j) - intensitas piksel (kecerahan);

C (i, j) = (R (i, j), G (i, j), B (i, j)) - atribut warna dalam model warna RGB.

Dalam bentuk matriks:

Mij ​​= (Aij, Cij).

Saat mendiskritkan gambar kontinu, nilai Aij dapat didefinisikan dalam dua cara, baik sebagai nilai titik Aij = (i, j) yang atributnya Cij didefinisikan, atau sebagai nilai dari kuadrat Aij = (i, i + 1) × (j, j + 1) atau bentuk lainnya, dengan penentuan Cij dengan nilai rata-rata dalam bentuk ini (Gbr. 17.1.1).

Dalam praktiknya, sebagai aturan, X dan Y adalah himpunan terbatas bilangan bulat non-negatif dari raster persegi atau persegi panjang dengan rasio aspek lebar dan tinggi raster, yang ditulis dalam bentuk, misalnya, "4 : 3".

Representasi warna dalam grafik komputer. Konsep warna didasarkan pada persepsi mata manusia terhadap gelombang elektromagnetik dalam rentang frekuensi tertentu. Siang hari yang kita rasakan memiliki panjang gelombang dari 400 nm (ungu) hingga 700 nm (merah). Deskripsi fluks bercahaya dapat berupa fungsi spektralnya I (λ). Cahaya disebut monokromatik jika spektrumnya hanya memiliki satu panjang gelombang tertentu.

Ada dua jenis reseptor pada retina: batang dan kerucut. Sensitivitas spektral batang (Gbr. 17.1.2) berbanding lurus dengan kecerahan cahaya datang. Kerucut dibagi menjadi tiga jenis, yang masing-masing memiliki sensitivitas tertentu dalam rentang terbatas dengan maksimal untuk warna merah, hijau dan biru, dan kehilangan sensitivitasnya secara tajam dalam gelap. Kerentanan mata terhadap warna biru secara signifikan lebih rendah daripada dua lainnya. Sifat penting dari persepsi manusia tentang cahaya adalah linearitas ketika warna dengan panjang gelombang yang berbeda digabungkan.

model warna RGB (Merah, Hijau, Biru - merah, hijau, biru) dalam grafik komputer saat ini adalah yang paling umum. Dalam model ini, fungsi spektral direpresentasikan sebagai jumlah kurva sensitivitas untuk setiap jenis kerucut dengan koefisien bobot non-negatif (dinormalisasi dari 0 hingga 1), yang dilambangkan sebagai R, G, dan B. Model dicirikan oleh properti aditif untuk mendapatkan warna baru. Misalnya, pengkodean fungsi spektral:

Hitam: fhitam = 0, (R, G, B) = (0,0,0);

Ungu fviolet = fred + fblue, (R, G, B) = (1,0,1);

Putih fwhite = fred + fgreen + fblue, (R, G, B) = (1,1,1).

Ruang warna tiga dimensi dari model RGB ditunjukkan pada Gambar. 17.1.3. Karena kekhasan persepsi cahaya oleh reseptor, tidak semua warna yang terlihat oleh manusia dapat direpresentasikan dalam model ini. Namun, bagian warna yang dapat direproduksi jauh lebih tinggi daripada bagian yang tidak terwakili dalam model ini.

Sistem warna CIE XYZ. Standar internasional untuk representasi warna CIE (CIE - Commission Internationale de l "Eclairage) diadopsi pada tahun 1931 oleh International Commission on Illumination, Ini mendefinisikan tiga fungsi dasar X (λ), Y (λ), Z (λ), tergantung pada kombinasi linier panjang gelombang yang dengan koefisien non-negatif (X, Y dan Z) menghasilkan semua warna yang terlihat manusia. Fungsi-fungsi ini memperhitungkan persepsi relatif intensitas cahaya oleh reseptor mata. Dalam ruang tiga dimensi, Sistem warna CIE membentuk kerucut di kuadran pertama dan digunakan untuk tampilan gambar berwarna berkualitas tinggi.

17.2. Transformasi geometris bitmap

Area dan tahapan transformasi. Gambar dapat dibagi menjadi tekstur dan detail. Dalam gambar tekstur, semua sampel (elemen) membawa informasi (gambar di layar TV). Gambar mendetail adalah gambar tempat Anda dapat menyorot objek yang mengganggu, latar belakang, dan objek yang berguna.

Ada tiga kelompok utama algoritma untuk pemrosesan gambar di komputer:

1. Pemrosesan gambar primer (pendahuluan) untuk tujuan restorasi, pembersihan dari kebisingan acak, peningkatan kualitas, koreksi distorsi geometrik sistem optik (pengacakan, penyimpangan, dll.).

2. Deskripsi gambar, pengenalan pola. Ini dilakukan untuk menentukan parameter detail gambar dan mencakup: menemukan area gambar yang seragam dalam hal iluminasi dan warna, menyoroti fitur bentuk gambar, menentukan koordinat titik khusus objek, dll.

3. Pengkodean yang efisien untuk mengurangi volume dalam transmisi dan penyimpanan.

Sebagian besar metode preprocessing didasarkan pada penggunaan filter linear space invariant (LPI). Algoritma linier dilakukan dengan menggunakan analog dua dimensi dari filter FIR dan IIR satu dimensi. Mereka dapat digunakan, misalnya, saat menerapkan filter untuk mengurangi noise pada gambar.

Filter FIR diimplementasikan menggunakan metode konvolusi. Keuntungan dari filter FIR 2D adalah kejelasan, kesederhanaan, dan stabilitas mutlak. Filter IIR diimplementasikan menggunakan persamaan diferensial dan transformasi-z. Mereka lebih cepat daripada filter FIR, tetapi bisa tidak stabil. Sintesis filter IIR dua dimensi berbeda dari sintesis filter satu dimensi, karena untuk fungsi dua dimensi tidak mungkin memilih kutub dalam bentuk eksplisit.

Metode non-linear mungkin juga diperlukan untuk memulihkan gambar dan meningkatkan kualitasnya. Jadi, misalnya, untuk menekan noise dan sekaligus mempertahankan bagian kontur gambar, perlu menggunakan filter nonlinier atau linear spasial noninvarian (LPNI), yang diimplementasikan oleh algoritma peringkat. Semua filter nonlinier peringkat didasarkan pada algoritme cepat untuk menghitung histogram lokal.

Salah satu metode tersebut adalah median filtering. Penggunaan filter median efektif untuk menekan beberapa jenis noise dan interferensi periodik tanpa secara bersamaan mendistorsi sinyal, misalnya untuk menekan semburan lonjakan noise, termasuk putus jalur. Metode ini juga dapat digunakan untuk memecahkan masalah yang berkaitan dengan pengenalan, misalnya, untuk menyoroti garis tipis dan objek kecil yang terisolasi.

Algoritma untuk menggambarkan gambar dan pengenalan pola biasanya non-linear dan heuristik di alam. Ciri-ciri benda biasanya adalah luas objek gambar, keliling kontur gambar, perbandingan luas dengan kuadrat keliling gambar. Bentuk benda dapat dicirikan dengan jari-jari lingkaran yang tertera pada gambar atau digambarkan di sekitar gambar benda, panjang jari-jari minimum dan maksimum-vektor dari “pusat massa” gambar.

Contoh. Transformasi gambar dalam komputer dan penyimpanan data yang diproses dilakukan dalam bentuk diskrit. Sampling digunakan untuk mendapatkan representasi diskrit dari gambar analog kontinu dari dunia nyata. Dalam praktiknya dilakukan oleh perangkat input (kamera digital, pemindai, atau lainnya). Untuk persepsi visual dari gambar yang diproses pada perangkat output (display, plotter, dll.), gambar analog direkonstruksi sesuai dengan representasi diskritnya.

Dalam kasus gambar hitam putih yang paling sederhana, kita memiliki array dua dimensi sa (x, y). Untuk gambar berwarna dalam model RGB, dengan mempertimbangkan properti aditif saat menambahkan warna, setiap lapisan R, G, dan B juga dapat dipertimbangkan dan diproses sebagai larik dua dimensi, dengan penjumlahan hasil selanjutnya.

Dari metode generalisasi pengambilan sampel periodik satu dimensi ke kasus dua dimensi, yang paling sederhana adalah pengambilan sampel periodik dalam koordinat persegi panjang:

s (n, m) = sa (nDx, mDy),

di mana Dx dan Dy adalah interval sampling horizontal dan vertikal dari sinyal kontinu dua dimensi sa (x, y) dengan koordinat x dan y kontinu. Di bawah nilai Dx dan Dy, seperti dalam kasus satu dimensi, diambil sama dengan 1.

Pengambilan sampel sinyal dua dimensi juga menyebabkan periodisasi spektrumnya dan sebaliknya. Kondisi kesetaraan informasi representasi koordinat dan frekuensi dari sinyal diskrit juga dipertahankan dengan jumlah titik pengambilan sampel yang sama dalam rentang sinyal utama. Untuk pengambilan sampel persegi panjang, transformasi Fourier langsung dan terbalik ditentukan oleh ekspresi:

S (k, l) = s (n, m) exp (-jn2pk / N-jm2pl / M), (17.2.1)

S (k, l) = exp (-jn2pk / N) s (n, m) exp (-jm2pl / M), (17.2.1")

s (n, m) = S (k, l) exp (-jn2pk / N-jm2pl / M). (17.2.2)

s (n, m) = exp (-jn2pk / N) S (k, l) exp (-jm2pl / M). (17.2.2")

Beras. 17.2.1. Periodisasi spektrum.

Ekspresi ini menunjukkan bahwa DFT dua dimensi di atas raster pengambilan sampel data persegi panjang dapat dihitung menggunakan DFT sekuensial satu dimensi. Jumlah kedua ekspresi (17.2.1 ") dan (17.2.2") adalah DFT satu dimensi dari bagian fungsi s (n, m) dan S (k, l) masing-masing sepanjang garis n dan k , dan yang pertama adalah DFT satu dimensi dari fungsi yang dihitung di bagian m dan l. Dengan kata lain, matriks awal nilai s (n, m) dan S (k, l) dihitung ulang terlebih dahulu menjadi matriks perantara dengan DFT per baris (atau per kolom), dan matriks antara - menjadi matriks akhir dengan DFT oleh kolom (atau, masing-masing, menurut baris).

Agar pengulangan spektrum secara periodik (Gbr. 17.2.1), yang disebabkan oleh pengambilan sampel sinyal analog dengan frekuensi Fx = 1 / Dx dan Fy = 1 / Dy, tidak mengubah spektrum pada rentang frekuensi utama (berkenaan dengan spektrum sinyal analog asli), perlu dan cukup bahwa komponen frekuensi maksimum fmax dalam spektrum sinyal analog, baik dalam baris maupun kolom, tidak melebihi frekuensi Nyquist (fmax. x £ fN = Fx / 2, fmaks.y £ fM = Fy / 2). Ini berarti bahwa frekuensi sampling sinyal harus paling sedikit dua kali komponen frekuensi maksimum dalam spektrum sinyal:

Fx 2fmax. x, Fy 2fmax. y, (17.2.3)

yang memastikan bahwa fungsi spektral mencapai nilai nol di ujung rentang spektrum utama.

Serangkaian interpolasi rekonstruksi sinyal dua dimensi. Jika sinyal kontinu sa (x, y) adalah sinyal spektrum terbatas, dan periode pengambilan sampel dipilih cukup kecil dan spektrum periode yang berdekatan tidak tumpang tindih:

Sa (Wx, Wy) = 0 untuk | Wx | p / Dx, | Wy | p / Dx,

kemudian, seperti dalam kasus satu dimensi, sinyal sa (x, y) dapat direkonstruksi dari sinyal diskrit menggunakan analog dua dimensi dari deret Kotelnikov-Shannon:

sa (x, y) = Sn Sm s (n, m) . (17.2.4)

Distorsi frekuensi gambar dan penghapusannya. Sinyal spektrum tak terbatas juga dapat diambil sampelnya, tetapi dalam kasus ini ada aliasing dalam periode yang berdekatan, sedangkan frekuensi tinggi, lebih tinggi dari frekuensi Nyquist, akan "ditutupi", seperti dalam kasus satu dimensi, di bawah frekuensi rendah periode utama. Pengaruh "pemantulan" dari batas-batas periode memberikan gambaran yang lebih kompleks lagi karena adanya interferensi frekuensi yang dipantulkan dalam koordinat yang berbeda. Efek serupa, yang dikenal sebagai aliasing, juga akan terjadi ketika gambar di-undersampled. Efek ini terutama dapat diamati dengan jelas pada perubahan kontras yang tajam dalam kecerahan.

Untuk mengatasi fenomena seperti itu, pra-pemfilteran (antialiasing) digunakan - konvolusi awal gambar analog dengan fungsi pembobotan filter yang memotong komponen frekuensi tinggi yang dapat menyebabkan aliasing. Dalam kasus dua dimensi, penyaringan dijelaskan sebagai berikut:

z (x, y) = h (x ", y") s (x-x ", y-y"). (17.2.5)

Perlu dicatat bahwa gambar analog hanya ada dalam jangkauan optik, misalnya, dalam bentuk tampilan cahaya di layar, kertas fotografi atau film fotografi, tetapi tidak dapat ada di memori komputer. Oleh karena itu, kinerja fisik pra-pemfilteran hanya dimungkinkan saat mendaftarkan gambar dengan mendefokusnya, yang, sebagai suatu peraturan, tidak diterapkan. Informasi primer harus selalu dicatat dengan kelengkapan dan akurasi maksimum, dan pembersihan informasi primer dari detail dan redundansi yang tidak perlu adalah masalah pemrosesan data selanjutnya. Oleh karena itu, sehubungan dengan Persamaan 17.2.5, prafilter dua dimensi, dalam implementasi praktisnya, hanya dapat memfilter gambar sampel dengan margin besar di atas rentang frekuensi utama (dengan resolusi berlebihan), dan digunakan, sebagai aturan, saat melakukan oversampling ke langkah yang lebih besar, misalnya saat mengompresi gambar. Pra-pemfilteran juga dapat dibangun ke dalam algoritma pencitraan.

dalam gambar. 3 dan di bawah, Tabel 17.2.1 menunjukkan contoh filter anti-aliasing satu dimensi yang paling umum. Mereka dapat dilakukan dalam bentuk filter analog, dan dapat digunakan, misalnya, ketika mentransmisikan saluran televisi gambar dalam bentuk analog melalui saluran radio (antialiasing horizontal). Pada prinsipnya, operasi serupa dapat dilakukan pada kolom (gambar ganda), dan setelah gambar diringkas, operasi anti-aliasing penuh akan dilakukan, tetapi metode ini lebih termasuk dalam bidang penelitian ilmiah khusus.

Tabel 17.2.1.

Fungsi berat dasar

Jendela waktu

Fungsi berat:

Transformasi Fourier

Alami (P)

(t) = 1, | t | £ t; (t) = 0, | t |> t

P (w) = 2t sin

Bartlett (D)

B (w) = t sinc2 (wt / 2).

Henninga, Ganna

p(t) = 0,5

0,5P (b) + 0,25P (w + p / t) + 0,25P (w-p / t)

Hamming

p (t) = 0,54 + 0,46 cos (pt / t)

0,54P (b) + 0,23P (w + p / t) + 0,23P (w-p / t)

Carre (jendela ke-2)

p (t) = b (t) sinc (pt / t)

t · B (w) * (w), (w) = 1 untuk | w |

Laplace-Gauss

p (t) = exp [-b2 (t / t) 2/2]

[(t / b) exp (-t2w2 / (2b2))] (w)

Analog dua dimensi dari filter satu dimensi f1 (x) dibangun dalam dua varian simetri: atau sebagai fungsi jari-jari:

f2 (x, y) = f1 (),

atau sebagai karya:

f2 (x, y) = f1 (x) × f1 (y).

Opsi pertama lebih tepat, tetapi opsi kedua memiliki sifat keterpisahan, yaitu, konvolusi dua dimensi dapat dilakukan oleh dua konvolusi satu dimensi secara berurutan sepanjang baris dengan f1 (x) dan sepanjang kolom dengan f1 (y).

Pengambilan sampel ulang gambar atau resampling adalah perubahan laju sampling dari sinyal digital. Untuk gambar digital, ini berarti mengubah ukuran gambar.

Ada berbagai algoritma untuk resampling gambar. Misalnya, untuk memperbesar gambar sebanyak 2 kali menggunakan metode interpolasi bilinear, kolom dan baris antara diperoleh dengan interpolasi linier dari nilai kolom dan baris yang berdekatan. Setiap titik dari gambar baru dapat diperoleh sebagai jumlah bobot dari sejumlah besar titik pada gambar asli (bicubic dan jenis interpolasi lainnya). Resampling kualitas tertinggi diperoleh saat menggunakan algoritma yang memperhitungkan tidak hanya waktu, tetapi juga domain frekuensi sinyal.

Pertimbangkan algoritma resampling dengan pelestarian maksimum informasi frekuensi gambar. Kami akan mempertimbangkan operasi algoritme pada sinyal satu dimensi, karena gambar dua dimensi pertama-tama dapat diregangkan atau dikompresi secara horizontal (berdasarkan baris) dan kemudian secara vertikal (berdasarkan kolom), dan pengambilan sampel ulang gambar dua dimensi dapat dilakukan direduksi menjadi resampling sinyal satu dimensi.

Misalkan kita memiliki sinyal satu dimensi (Gbr. 17.2.4), ditentukan pada interval 0-T dan disampel dengan langkah Dt = 1 (interval N). Hal ini diperlukan untuk "meregangkan" sinyal m kali. Spektrum sinyal yang ditunjukkan pada gambar dihitung dengan transformasi Fourier cepat (FFT, jumlah sampel spektrum sama dengan jumlah sampel sinyal) dan diberikan dalam rentang FFT utama (0-2p, frekuensi Nyquist wN = p / Dt = p, atau 0,5N sesuai dengan penomoran sampel spektrum dengan langkah spektrum sepanjang Df = 1 / T atau Dw = 2p / T). Ada 2 langkah untuk melakukan peregangan.

Langkah pertama adalah interpolasi dengan nol, yang meningkatkan panjang sinyal m kali. (gbr. 17.2.5). Penting untuk mengalikan semua sampel sinyal asli dengan m, dan kemudian setelah setiap sampel sinyal masukkan nilai nol m-1. Pada interval 0-T, yang nilainya tidak berubah, sekarang terletak m kali lebih banyak interval pengambilan sampel (mN), dan langkah pengambilan sampel baru akan sama dengan Dx = Dt / m. Dengan demikian, frekuensi Nyquist yang baru untuk sinyal ini adalah mp / Dt = mp. Tetapi ukuran fisik langkah spektrum dalam satuan frekuensi berbanding terbalik dengan nilai fisik interval pengaturan sinyal (Df = 1 / T), dan oleh karena itu, FFT dari titik mN sinyal akan menghitung titik mN spektrum dalam rentang FFT utama 0-2pm dengan langkah spektrum sinyal asli, di mana akan hadir m-periode dari spektrum sinyal asli (satu sisi utama dan m-1).

Langkah kedua adalah menyaring pita samping spektrum menggunakan filter lolos rendah baik dalam domain waktu atau domain spektral. dalam gambar. 17.2.6, spektrum dibersihkan dan transformasi Fourier terbalik dilakukan, sebagai akibatnya sinyal diperoleh m kali lebih lama dari yang asli dengan pelestarian penuh semua informasi frekuensi.

Dengan prinsip yang sama, algoritma kompresi sinyal (decimation) dapat dibangun dengan faktor n, sedangkan urutan langkah dibalik. Ketika sinyal dikompresi, langkah pengambilan sampel sinyal meningkat dan, dengan demikian, frekuensi Nyquist berkurang, sedangkan frekuensi tinggi yang terputus (kebisingan dan bagian frekuensi tinggi yang tidak signifikan dari spektrum sinyal) akan dipantulkan dari batas sinyal utama. jangkauan dan ditambahkan ke informasi utama, menciptakan distorsi. Untuk menghilangkan fenomena ini, pertama, sinyal difilter low-pass dengan frekuensi cutoff yang sama dengan frekuensi Nyquist baru (antialiasing), dan baru kemudian sinyal dihancurkan oleh penipisan.

Ketika resampling hanya dalam domain waktu, algoritma peregangan dan kompresi digabungkan, sebagai suatu peraturan, menjadi satu proses sekuensial dengan menentukan perubahan dalam langkah pengambilan sampel dalam bentuk rasio m / n, yang memungkinkan untuk mengatur bilangan bulat nilai m dan n dengan nilai pecahan dari perubahan langkah pengambilan sampel. Ini sangat menyederhanakan algoritma dan meningkatkan efisiensi dan kualitas pekerjaan mereka. Misalnya, ketika sinyal diregangkan 1,5 kali pada m / n = 3/2, sinyal pertama diregangkan 3 kali (penambahan nol sederhana dan seragam untuk semua sampel, kemudian penyaringan low-pass dilakukan, setelah itu sinyal dihancurkan dua kali. Filter anti-aliasing tidak diperlukan , karena frekuensi cutoff-nya ditutupi oleh frekuensi filter low-pass pertama. Ketika operasi kompresi balik (misalnya, m / n = 2/3), hanya filter anti-aliasing digunakan dengan cara yang sama.

17.3. menyaring gambar

Pemfilteran gambar dipahami sebagai operasi yang menghasilkan gambar dengan ukuran yang sama, diperoleh dari gambar aslinya menurut aturan tertentu. Biasanya, intensitas (warna) setiap piksel dari citra yang dihasilkan ditentukan oleh intensitas (warna) piksel yang terletak di beberapa sekitarnya pada citra asli.

Aturan penyaringan bisa sangat berbeda. Penyaringan gambar adalah salah satu operasi paling mendasar dari visi komputer, pengenalan pola, dan pemrosesan gambar. Pekerjaan sebagian besar metode pemrosesan gambar dimulai dengan satu atau lain penyaringan gambar sumber.

Filter garis memiliki deskripsi matematika yang sangat sederhana. Kami akan mengasumsikan bahwa gambar skala abu-abu asli A diberikan, dan menunjukkan intensitas pikselnya A (x, y). Filter linier didefinisikan oleh fungsi bernilai nyata h (kernel filter) yang didefinisikan pada raster. Pemfilteran itu sendiri dilakukan menggunakan operasi konvolusi diskrit (penjumlahan berbobot):

B (x, y) = h (i, j) A (x, y) = h (i, j) A (x-i, y-j). (17.3.1)

Hasilnya adalah gambar B. Biasanya, kernel filter tidak nol hanya di beberapa lingkungan N dari titik (0, 0). Di luar lingkungan ini, h (i, j) adalah nol, atau sangat dekat dengannya dan dapat diabaikan. Penjumlahan dilakukan pada (i, j) N, dan nilai setiap piksel B (x, y) ditentukan oleh piksel gambar A, yang terletak di jendela N, berpusat pada titik (x, y ) (sebutan - himpunan N (x, y) ). Kernel filter yang didefinisikan pada lingkungan persegi panjang N dapat dilihat sebagai matriks m-kali-n, di mana panjang sisinya adalah bilangan ganjil. Saat menentukan kernel sebagai matriks, itu harus dipusatkan. Jika piksel (x, y) berada di sekitar tepi gambar, maka koordinat A (x-i, y-j) tertentu (i, j) mungkin sesuai dengan piksel A yang tidak ada di luar gambar. Masalah ini dapat diselesaikan dengan beberapa cara.

Jangan memfilter piksel ini dengan memotong gambar B di tepinya, atau menerapkan nilai asli gambar A ke nilainya.

Jangan sertakan piksel yang hilang dalam penjumlahan dengan mendistribusikan bobotnya h (i, j) secara merata di antara piksel lain di lingkungan N (x, y).

Mendefinisikan ulang nilai piksel di luar batas gambar menggunakan ekstrapolasi.

Definisikan ulang nilai piksel di luar batas gambar menggunakan kelanjutan gambar cermin.

Pilihan metode dibuat dengan mempertimbangkan fitur filter dan gambar tertentu.

Filter penghalus. Filter pemulusan persegi panjang paling sederhana dengan jari-jari r ditentukan menggunakan matriks ukuran (2r + 1) × (2r + 1), semua nilainya sama dengan 1 / (2r + 1) 2, dan jumlah dari nilainya sama dengan satu. Ini adalah analog dua dimensi dari filter berbentuk U rata-rata bergerak satu dimensi frekuensi rendah. Saat memfilter dengan kernel seperti itu, nilai piksel diganti dengan nilai piksel rata-rata dalam kotak dengan sisi 2r + 1 di sekitarnya. Contoh masker filter 3 × 3:

.

Salah satu aplikasi filter adalah pengurangan kebisingan. Kebisingan berubah secara independen dari piksel ke piksel dan, asalkan ekspektasi matematis dari nilai kebisingan sama dengan nol, kebisingan piksel tetangga selama penjumlahan akan saling mengimbangi. Semakin besar jendela pemfilteran, semakin sedikit intensitas rata-rata noise, tetapi ini juga akan menghasilkan pengaburan detail gambar yang signifikan. Gambar titik putih pada latar belakang hitam selama penyaringan (reaksi terhadap impuls tunggal) akan menjadi kotak abu-abu seragam.

Pengurangan noise menggunakan filter persegi panjang memiliki kelemahan yang signifikan: semua piksel dalam topeng filter pada jarak berapa pun dari yang diproses memiliki efek yang sama pada hasilnya. Hasil yang sedikit lebih baik diperoleh saat memodifikasi filter dengan peningkatan bobot titik tengah:

.

Pengurangan noise yang lebih efektif dapat dilakukan jika pengaruh piksel pada hasil akan berkurang dengan meningkatnya jarak dari yang diproses. Properti ini dimiliki oleh filter Gaussian dengan kernel: h (i, j) = (1 / 2ps2) exp (- (i2 + j2) / 2s2). Filter Gaussian memiliki kernel bukan nol dengan ukuran tak terbatas. Namun, nilai kernel filter menurun sangat cepat ke n), dan oleh karena itu, dalam praktiknya, seseorang dapat membatasi diri pada konvolusi dengan jendela kecil di sekitar (0, 0), misalnya, dengan mengambil radius jendela sama dengan 3σ.

Penyaringan Gaussian juga anti-aliasing. Namun, tidak seperti filter persegi panjang, gambar titik dengan filter Gaussian akan menjadi titik buram simetris, dengan penurunan kecerahan dari tengah ke tepi. Tingkat keburaman gambar ditentukan oleh parameter .

Filter Peningkatan Kontras ... Sementara filter anti-aliasing mengurangi kontras lokal gambar dengan mengaburkannya, filter penambah kontras menghasilkan efek sebaliknya dan pada dasarnya adalah filter frekuensi spasial tinggi. Inti dari filter penambah kontras pada titik (0, 0) memiliki nilai lebih besar dari 1, dengan jumlah total nilai sama dengan 1. Misalnya, filter penambah kontras adalah filter dengan kernel yang ditentukan oleh matriks:

. .

Contoh penerapan filter ditunjukkan pada Gambar. 17.3.1. Efek peningkatan kontras dicapai dengan fakta bahwa filter menekankan perbedaan antara intensitas piksel yang berdekatan, menghilangkan intensitas ini satu sama lain. Efek ini akan semakin kuat, semakin besar nilai suku pusat nukleus. Artefak karakteristik pemfilteran peningkatan kontras linier adalah lingkaran cahaya yang terang dan kurang terlihat di sekitar batas.

Filter perbedaan Apakah filter linier didefinisikan oleh perkiraan diskrit dari operator diferensial (dengan metode perbedaan hingga). Filter ini memainkan peran penting dalam banyak aplikasi, misalnya, untuk tugas menemukan batasan dalam sebuah gambar.

Operator diferensial paling sederhana adalah mengambil turunan terhadap koordinat x d / dx, yang didefinisikan untuk fungsi kontinu. Varian umum dari operator serupa untuk gambar diskrit adalah filter Prewitt dan Sobel:

. .

Filter yang mendekati operator turunan terhadap koordinat y d / dy diperoleh dengan mentranspos matriks.

Algoritma paling sederhana untuk menghitung norma gradien dari tiga titik yang berdekatan:

G (x, y) = .

Rumus perhitungan yang disederhanakan juga diterapkan:

Perhitungan norma gradien dari empat titik yang berdekatan (operator Roberts):

Algoritma Sobel menggunakan delapan pembacaan luminance di sekitar titik pusat:

G (x, y) = , G (x, y) @ ,

Gxx, y = -,

Gyx, y = -.

Seiring dengan penentuan norma gradien yang lebih akurat, algoritma Sobel juga memungkinkan penentuan arah vektor gradien pada bidang analisis citra berupa sudut j antara vektor gradien dan arah baris matriks:

j (x, y) = argtg (Gyx, y / Gxx, y).

Berbeda dengan filter anti-aliasing dan penambah kontras, yang tidak mengubah intensitas rata-rata gambar, sebagai akibat dari penggunaan operator perbedaan, sebagai aturan, gambar diperoleh dengan nilai piksel rata-rata mendekati nol. Tepi vertikal (batas) gambar asli sesuai dengan piksel dengan nilai absolut besar pada gambar yang dihasilkan. Oleh karena itu, filter delta disebut juga filter pemilihan batas.

Mirip dengan filter di atas, dengan menggunakan metode beda hingga, Anda dapat membuat filter untuk operator diferensial lainnya. Secara khusus, operator diferensial Laplace (Laplacian) D = 2 / x2 + 2 / y2, yang penting untuk banyak aplikasi, dapat didekati untuk gambar diskrit dengan filter dengan matriks (salah satu opsi):

.

Seperti yang terlihat pada Gambar. 17.3.2, sebagai hasil dari penerapan diskrit Laplacian, nilai absolut yang besar sesuai dengan perbedaan kecerahan vertikal dan horizontal. Filter demikian filter yang menemukan batas-batas orientasi apapun. Menemukan batas pada gambar dapat dilakukan dengan menerapkan filter ini dan mengambil semua piksel, yang besarnya melebihi ambang batas tertentu.

Namun, algoritma ini memiliki kelemahan yang signifikan. Yang utama adalah ketidakpastian dalam pilihan nilai ambang batas. Untuk bagian gambar yang berbeda, hasil yang dapat diterima biasanya diperoleh pada nilai ambang batas yang berbeda secara signifikan. Selain itu, filter perbedaan sangat sensitif terhadap noise gambar.

Konvolusi siklik dua dimensi. Sedangkan untuk sinyal satu dimensi, konvolusi dua dimensi dapat dilakukan dalam domain frekuensi spasial menggunakan algoritma transformasi Fourier cepat dan mengalikan spektrum dua dimensi dari gambar dan kernel filter. Hal ini juga siklus, dan biasanya dilakukan dalam versi geser. Mempertimbangkan siklisitas, untuk menghitung pola konstan dari spektrum kernel, dimensi topeng filter kernel digandakan sepanjang sumbu dan diisi dengan nol, dan ukuran topeng yang sama digunakan untuk memilih jendela yang meluncur di atas gambar, dalam dimana FFT dilakukan. Menerapkan filter FIR dengan FFT sangat efektif jika filter memiliki area referensi yang besar.

Filter non-linier ... Dalam pemrosesan citra digital, algoritma non-linier berdasarkan statistik peringkat banyak digunakan untuk memulihkan citra yang rusak oleh berbagai model noise. Mereka memungkinkan Anda untuk menghindari distorsi gambar tambahan saat menghilangkan noise, serta secara signifikan meningkatkan hasil pemfilteran pada gambar dengan tingkat noise yang tinggi.

Mari kita perkenalkan konsep lingkungan-M dari elemen gambar A (x, y), yang merupakan pusat lingkungan ini. Dalam kasus paling sederhana, M-neighborhood berisi N-piksel - titik yang masuk ke dalam topeng filter, termasuk (atau tidak termasuk) yang di tengah. Nilai-nilai elemen-N ini dapat diatur dalam variasi deret V (r), diurutkan dalam urutan menaik (atau menurun), dan momen-momen tertentu dari deret ini dapat dihitung, misalnya, nilai rata-rata kecerahan mN dan varians dN. Perhitungan nilai keluaran filter, yang menggantikan sampel tengah, dilakukan dengan menggunakan rumus:

B (x, y) = aА (x, y) + (1-a) mN. (17.3.2)

Nilai koefisien a = dikaitkan dengan hubungan tertentu dengan statistik hitungan di jendela filter, misalnya:

a = dN / (dN + k dS), (17.3.3)

di mana dS adalah varians noise pada gambar secara keseluruhan atau di lingkungan S untuk S> M dan MÎS, k adalah konstanta kepercayaan dari varians S-neighborhood. Sebagai berikut dari rumus ini, untuk k = 1 dan dN "dS, a" 0,5 terjadi, dan nilai B (x, y) = (A (x, y) + mN) / 2, yaitu dijumlahkan sama dari nilai referensi pusat dan nilai rata-rata piksel dari M-neighborhood-nya. Dengan peningkatan nilai dN, kontribusi terhadap hasil nilai referensi pusat meningkat, dengan penurunan nilai mN. Bobot kontribusi nilai rata-rata terhadap M-neighborhood dapat diubah dengan nilai koefisien k.

Pilihan fungsi statistik dan sifat ketergantungan koefisien a di atasnya bisa sangat beragam (misalnya, menurut varians perbedaan sampel di lingkungan-M dengan sampel pusat), dan tergantung keduanya pada ukuran bukaan filter dan pada sifat gambar dan noise. Intinya, nilai koefisien a harus menentukan tingkat kerusakan pada referensi pusat dan, oleh karena itu, fungsi meminjam sampel dari lingkungan-M untuk memperbaikinya.

Jenis filter nonlinier yang paling sederhana dan umum untuk pemrosesan gambar adalah filter ambang dan median.

Pemfilteran ambang batas diatur, misalnya sebagai berikut:

B (x, y) =

besarnya P adalah ambang penyaringan. Jika nilai titik tengah filter melebihi nilai rata-rata sampel mN di lingkungan M-nya dengan nilai ambang batas, maka diganti dengan nilai rata-rata. Nilai ambang dapat berupa konstan atau fungsional tergantung pada nilai titik pusat.

Pemfilteran median didefinisikan sebagai berikut:

B (x, y) = med (M (x, y)),

yaitu, hasil pemfilteran adalah nilai median piksel tetangga, yang bentuknya ditentukan oleh topeng filter. Pemfilteran median dapat secara efektif menghilangkan noise dari gambar yang secara independen memengaruhi piksel individu. Misalnya, noise tersebut adalah piksel yang "rusak" dalam fotografi digital, noise "salju", ketika beberapa piksel digantikan oleh piksel dengan intensitas maksimum, dll. Keuntungan pemfilteran median adalah piksel "panas" pada latar belakang gelap akan diganti gelap, dan tidak "dioles" di sekitarnya.

Pemfilteran median memiliki selektivitas yang jelas sehubungan dengan elemen larik, yang merupakan komponen non-monotonik dari urutan angka dalam bukaan filter. Pada saat yang sama, filter median membiarkan komponen monoton dari barisan tidak berubah. Karena fitur ini, filter median dengan aperture yang dipilih secara optimal mempertahankan tepi tajam objek tanpa distorsi, menekan noise yang tidak berkorelasi atau berkorelasi lemah dan detail berukuran kecil.

Filter ekstrim ditentukan oleh aturan:

Bmin (x, y) = min (M (x, y)),

Bmaks (x, y) = maks (M (x, y)),

yaitu, hasil filter adalah nilai piksel minimum dan maksimum dalam topeng filter. Filter semacam itu digunakan, sebagai suatu peraturan, untuk gambar biner.

17.4. KOMPRESI GAMBAR

Gambar tipikal dengan resolusi orde 3000 × 2000 pada 24 bit per piksel untuk warna adalah 17 megabita. Untuk perangkat profesional, ukuran raster gambar yang dihasilkan bisa jauh lebih besar, kedalaman warna hingga 48 bit per piksel, dan ukuran satu gambar bisa lebih dari 200 megabita. Oleh karena itu, algoritma kompresi gambar sangat relevan untuk mengurangi jumlah data yang mewakili suatu gambar.

Ada dua kelas utama dari algoritma:

1. Kompresi lossless, jika ada algoritma invers A-1 sehingga untuk sembarang h-gambar A [h] = h1 kita memiliki A-1 = h. Kompresi lossless digunakan dalam format gambar grafik seperti: GIF, PCX, PNG, TGA, TIFF, dan digunakan dalam pemrosesan informasi primer yang sangat berharga (gambar medis, gambar udara dan ruang angkasa, dll.), bahkan ketika distorsi sekecil apa pun tidak diinginkan

2. Kompresi dengan kerugian (lossy compression), jika tidak memberikan kemampuan untuk mengembalikan gambar asli secara akurat. Sebuah algoritma untuk restorasi citra perkiraan dipasangkan ke A akan dilambangkan sebagai A *. Pasangan (A, A *) dipilih untuk memberikan rasio kompresi tinggi sambil mempertahankan kualitas visual. Kompresi lossy digunakan dalam format gambar: JPEG, JPEG2000, dll.

Semua algoritma dan pernyataan mengacu pada gambar dan urutan arbitrer, elemen yang dapat mengambil sejumlah nilai yang terbatas. Harus diingat bahwa tidak ada algoritme ideal yang mengompresi kumpulan data apa pun tanpa kehilangan.

Panjang Pengulangan (RLE) Coding Algorithms didasarkan pada prinsip sederhana: mengganti kelompok elemen yang berulang dari urutan asli dengan pasangan (kuantitas, elemen), atau hanya dengan kuantitas.

tingkat bit. Kami akan mempertimbangkan data asli pada tingkat urutan bit, misalnya, mewakili gambar hitam putih. Biasanya ada beberapa 0 atau 1 berturut-turut, dan Anda dapat mengkodekan jumlah digit identik yang berurutan. Tetapi jumlah pengulangan juga harus dikodekan dalam bit. Kita dapat mengasumsikan bahwa setiap jumlah pengulangan bervariasi dari 0 hingga 7 (kode 3-bit), bergantian urutan kode satu dan nol. Misalnya, urutannya dapat dibandingkan dengan angka 7 0 4, yaitu, 7 angka, 0 nol, 4 angka, sementara kita memiliki tahun baru - Semakin panjang urutan bit identik, semakin besar efeknya. Jadi, urutan 21 satu, 21 nol, 3 satu dan 7 nol dikodekan sebagai berikut: yaitu, dari urutan asli dengan panjang 51 bit, kami memiliki urutan dengan panjang 36 bit.

Tingkat byte. Misalkan gambar skala abu-abu diumpankan ke input, di mana 1 byte dialokasikan untuk nilai intensitas piksel, sedangkan ekspektasi string panjang bit identik berkurang secara signifikan.

Kami akan membagi aliran input menjadi byte (kode dari 0 hingga 255) dan mengkodekan byte yang diulang secara berpasangan (angka, huruf). Satu byte dapat dibiarkan tidak berubah. Jadi, byte AABBBCDAA dikodekan (2A) (3B) (C) (D) (2A).

Namun, modifikasi dari algoritme ini jarang digunakan sendiri (misalnya, dalam format PCX), karena subkelas dari urutan di mana algoritme efektif relatif sempit. Paling sering mereka digunakan sebagai salah satu tahapan pipa kompresi.

Algoritma kamus alih-alih mengkodekan hanya satu elemen dari urutan input, rantai elemen dikodekan. Dalam hal ini, kamus string (dibuat dari urutan input) digunakan untuk mengkodekan yang baru.

Algoritma LZ77 adalah salah satu yang pertama menggunakan kamus. N terakhir elemen yang sudah dikodekan dari urutan digunakan sebagai kamus. Selama proses kompresi, kamus urutan "meluncur" di atas urutan yang masuk. Rantai elemen pada output dikodekan sebagai berikut: posisi bagian yang cocok dari rantai elemen yang diproses dalam kamus - offset (relatif terhadap posisi saat ini), panjang, elemen pertama mengikuti bagian rantai yang cocok. Panjang rantai korek api dibatasi dari atas oleh angka n. Dengan demikian, tugasnya adalah menemukan string terbesar dari kamus yang cocok dengan urutan yang sedang diproses. Jika tidak ada kecocokan, maka offset nol, satu panjang dan elemen pertama dari urutan yang tidak dikodekan dicatat.

Skema pengkodean yang dijelaskan di atas mengarah pada konsep jendela geser, yang terdiri dari dua bagian:

Urutan elemen yang sudah dikodekan dengan panjang N-dictionary - buffer pencarian;

Urutan panjang n dari rantai elemen yang akan dicoba untuk menemukan kecocokan adalah buffer look-ahead.

Decoding urutan terkompresi adalah dekripsi dari kode yang direkam: setiap entri dicocokkan dengan string dari kamus dan elemen yang ditulis secara eksplisit, setelah itu kamus digeser. Kamus dibuat ulang saat algoritma decoding berjalan.

Algoritma ini adalah nenek moyang dari seluruh keluarga algoritma. Keuntungannya termasuk rasio kompresi yang layak pada urutan yang cukup besar dan dekompresi cepat. Kerugiannya termasuk kecepatan kompresi yang lambat dan rasio kompresi yang lebih rendah daripada algoritma alternatif.

algoritma LZW. Kamus dalam algoritma ini adalah tabel yang diisi dengan string elemen saat algoritma berjalan. Proses kompresi mencari rantai terpanjang yang sudah ditulis ke kamus. Setiap kali string elemen baru tidak ditemukan dalam kamus, itu ditambahkan ke kamus, dan kode string ditulis. Secara teori, tidak ada batasan ukuran tabel, tetapi batasan ukuran memungkinkan Anda untuk meningkatkan rasio kompresi, karena rantai yang tidak perlu (tidak ditemukan) menumpuk. Semakin banyak entri yang dimiliki tabel, semakin banyak informasi yang perlu dialokasikan untuk menyimpan kode.

Decoding terdiri dari mendekripsi kode secara langsung, yaitu dalam membangun kamus dan mengeluarkan string yang sesuai. Kamus diinisialisasi dengan cara yang sama seperti di encoder. Keuntungan dari algoritma ini termasuk rasio kompresi yang tinggi dan kecepatan kompresi dan decoding yang cukup tinggi.

Algoritma pengkodean entropi menempatkan korespondensi untuk setiap elemen dari urutan kode sehingga panjangnya sesuai dengan probabilitas kemunculan elemen. Kompresi terjadi dengan mengganti elemen dari urutan asli yang memiliki panjang yang sama (setiap elemen membutuhkan jumlah bit yang sama) dengan elemen dengan panjang yang berbeda sebanding dengan logaritma negatif dari probabilitas, yaitu elemen yang lebih umum daripada yang lain memiliki panjang kode lebih pendek.

Algoritma Huffman menggunakan kode awalan panjang variabel dengan properti khusus: kode yang lebih pendek tidak cocok dengan awalan (bagian awal) dari kode yang lebih panjang. Kode ini memungkinkan pengkodean satu-ke-satu. Proses kompresi terdiri dari penggantian setiap elemen dari urutan input dengan kodenya. Konstruksi satu set kode biasanya dilakukan dengan menggunakan apa yang disebut pohon kode.

Algoritma Huffman adalah dua-pass. Pelewatan pertama di atas gambar membuat tabel bobot elemen, dan selama yang kedua, pengkodean terjadi. Ada implementasi dari algoritma tabel tetap. Sering terjadi bahwa distribusi probabilitas sebelumnya dari elemen alfabet tidak diketahui, karena seluruh urutan tidak tersedia sekaligus, dan modifikasi adaptif dari algoritma Huffman digunakan.

Kompresi gambar yang hilang. Jumlah informasi yang diperlukan untuk menyimpan gambar biasanya besar. Algoritme klasik, sebagai algoritme tujuan umum, tidak memperhitungkan bahwa informasi yang dikompresi adalah gambar - objek dua dimensi, dan tidak memberikan rasio kompresi yang memadai.

Kompresi lossy didasarkan pada karakteristik persepsi manusia terhadap suatu gambar: sensitivitas tertinggi dalam rentang panjang gelombang warna tertentu, kemampuan untuk melihat gambar secara keseluruhan, tanpa memperhatikan distorsi kecil. Kelas utama gambar yang menjadi fokus algoritma kompresi lossy adalah foto, gambar dengan transisi warna yang halus.

Estimasi kehilangan gambar. Ada banyak ukuran untuk menilai kehilangan gambar setelah pemulihan (decoding) dari yang terkompresi, tetapi untuk semuanya dimungkinkan untuk memilih dua gambar sedemikian rupa sehingga ukuran perbedaannya akan cukup besar, tetapi perbedaannya akan hampir tidak terlihat ke mata. Dan sebaliknya - Anda dapat mengambil gambar yang sangat berbeda dengan mata, tetapi memiliki sedikit perbedaan.

Ukuran numerik standar kerugian biasanya standar deviasi (RMS) dari nilai piksel gambar yang direkonstruksi dari yang asli. Namun, “ukuran” estimasi kerugian yang paling penting adalah pendapat pengamat. Semakin sedikit perbedaan (atau lebih baik, ketidakhadirannya) yang dideteksi pengamat, semakin tinggi kualitas algoritma kompresi. Algoritme kompresi lossy sering memberi pengguna kemampuan untuk memilih jumlah data yang "hilang", yaitu, hak untuk memilih antara kualitas dan ukuran gambar yang dikompresi. Secara alami, semakin baik kualitas visual dengan rasio kompresi yang lebih tinggi, semakin baik algoritmanya.

Transformasi Fourier. Secara umum, citra dapat dianggap sebagai fungsi dari dua variabel, yang ditentukan pada titik-titik raster akhir. Himpunan fungsi tersebut pada titik-titik raster terbatas yang tetap membentuk ruang Euclidean berdimensi berhingga, dan transformasi Fourier diskrit, yaitu, representasi spektral dari gambar, dapat diterapkan padanya. Ini menyediakan:

Ketidakterkaitan dan independensi koefisien spektrum, yaitu keakuratan representasi satu koefisien tidak bergantung pada koefisien lainnya.

- Pemadatan energi. Transformasi menyimpan informasi dasar dalam sejumlah kecil koefisien. Properti ini paling menonjol dalam gambar fotorealistik.

Koefisien representasi spektral adalah amplitudo frekuensi spasial gambar. Dalam kasus gambar dengan transisi halus, sebagian besar informasi terkandung dalam spektrum frekuensi rendah.

Algoritma kompresi yang digunakan dalam format JPEG didasarkan pada penggunaan transformasi Fourier cosinus diskrit. Skema kompresi dalam algoritma adalah pipa, di mana transformasi ini hanya salah satu tahapan, tetapi salah satu yang utama. Algoritma berisi operasi dasar berikut:

1. Terjemahan ke dalam ruang warna YCbCr. Di sini Y adalah komponen luminance, Cb dan Cr adalah komponen kromatisitas. Mata manusia lebih sensitif terhadap kecerahan daripada warna. Oleh karena itu, lebih penting untuk mempertahankan akurasi yang lebih besar dalam transmisi Y daripada dalam transmisi Cb dan Cr.

2. Transformasi kosinus diskrit (DCT). Gambar dibagi menjadi blok 8 × 8. Transformasi kosinus diskrit diterapkan pada setiap blok (secara terpisah untuk komponen Y, Cb dan Cr).

3. Pengurangan komponen frekuensi tinggi dalam matriks DCT. Mata manusia praktis tidak melihat perubahan pada komponen frekuensi tinggi, oleh karena itu, koefisien yang bertanggung jawab untuk frekuensi tinggi dapat disimpan dengan akurasi yang lebih rendah.

4. Pengurutan matriks secara zigzag. Ini adalah pass matriks khusus untuk mendapatkan urutan satu dimensi. Pertama datang elemen T00, lalu T01, T10, T1 Selain itu, untuk gambar fotorealistik tipikal, pertama akan ada koefisien bukan nol yang sesuai dengan komponen frekuensi rendah, dan kemudian - banyak nol (komponen frekuensi tinggi).

5. Kompresi pertama dengan metode RLE, dan kemudian dengan metode Huffman.

Algoritma restorasi gambar bekerja dalam urutan terbalik. Rasio kompresi dari 5 hingga 100 kali atau lebih. Pada saat yang sama, kualitas visual untuk sebagian besar gambar fotorealistik tetap pada tingkat yang baik saat dikompresi hingga 15 kali. Algoritme dan format adalah yang paling umum untuk mentransfer dan menyimpan gambar penuh warna.

Transformasi gelombang sinyal adalah generalisasi dari transformasi Fourier klasik. Istilah "wavelet" dalam terjemahan dari bahasa Inggris berarti "gelombang kecil (pendek)". Wavelet adalah nama umum untuk keluarga fungsi matematika dari bentuk tertentu, yang lokal dalam waktu dan frekuensi, dan di mana semua fungsi diperoleh dari satu fungsi dasar melalui pergeseran dan peregangan sepanjang sumbu waktu.

Dalam algoritma kompresi lossy, sebagai aturan, semua operasi pipa kompresi dipertahankan, menggantikan transformasi Fourier diskrit dengan transformasi wavelet diskrit. Transformasi wavelet memiliki lokalisasi spasial frekuensi yang sangat baik dan lebih unggul daripada transformasi Fourier tradisional dalam indikator ini. Hal ini memungkinkan untuk menerapkan kuantisasi yang lebih kuat, meningkatkan sifat-sifat urutan untuk kompresi berikutnya. Algoritma kompresi gambar berdasarkan transformasi ini, pada rasio kompresi yang sama, menunjukkan hasil yang lebih baik dalam menjaga kualitas gambar.

literatur

46.Et al.Algoritme cepat dalam pemrosesan gambar digital. - M.: Radio dan komunikasi, 1984 .-- 224 hal.

47. Pengolahan citra Soifer. Bagian 2. Metode dan algoritma. - Jurnal Pendidikan Soros No. 3 Tahun 1996.

48., Cartilage noise dari gambar berdasarkan algoritma nonlinier menggunakan statistik peringkat. - Universitas Negeri Yaroslavl, 2007.

49. Sistem pengawasan televisi Andreev. Bagian II. Aritmatika - dasar dan algoritma logis. tutorial. - SPb: SPb, GUITMO, 2005 .-- 88p.

51. Pengantar pemrosesan sinyal digital (dasar matematika) .- M.: Universitas Negeri Moskow, Laboratorium grafik komputer dan multimedia, 2002. - http: // pv. ***** / dsp / dspcourse. pdf, http: // dsp-book. ***** / dspcourse. djvu, http: // geogin. ***** / arhiv / dsp / dsp4.pdf.

1i. dan dasar Algoritmik lainnya dari grafik raster. - Universitas Teknologi Informasi Internet. -http: //www. ***** / goto / kursus / rastrgraph /

2i. Lukin - sistem elektronik: Catatan kuliah. ITMO, 2004. - St. Petersburg, ITMO IFF, 2004. - http: // iff. ***** / kons / oes / KL. htm

Tentang kesalahan yang diperhatikan dan saran untuk penambahan: ***** @ *** ru.

hak cipta© 2008davydovSEBUAH.V.

Pekerjaan laboratorium No. 1

Algoritma pemrosesan gambar

Operasi konvolusi

Konvolusi adalah algoritma yang sangat luas yang dapat digunakan baik untuk pra-pemrosesan citra maupun pengenalan dan identifikasi objek. Biarkan gambar ditentukan oleh matriks kecerahan dua dimensi F" , dan respon impuls oleh matriks H... Konvolusi matematis suatu matriks F dengan inti H dapat ditentukan dengan rumus berikut:

di mana M2xN2 - ukuran matriks kernel konvolusi. Ukuran matriks F sama dengan (M1 + M2-1) x (N1 + N2-1), di mana M1xN1 - ukuran matriks asli F" ... Matriks F diperoleh dari yang asli dengan menambahkan elemen di tepi matriks menurut beberapa aturan untuk membawanya ke ukuran yang diperlukan. Biasanya matriks asli diisi di tepi dengan nol untuk setengah lebar matriks H ke kiri dan ke kanan dan, masing-masing, setengah tinggi ke atas dan sama ke bawah. Maka ukuran matriks yang dihasilkan R akan sama dengan matriks F" .

Konvolusi dapat dihitung secara langsung dengan "menjalankan" satu matriks di atas matriks lainnya, seperti yang telah ditunjukkan di atas. dalam gambar. 1 menunjukkan skema untuk menghitung konvolusi (ukuran matriks topeng diambil sama dengan 3x3). Operator konvolusi dapat dilihat sebagai matriks koefisien (mask) yang elemen-bijaksana dikalikan dengan fragmen gambar yang dipilih dan kemudian dijumlahkan untuk mendapatkan nilai baru dari elemen gambar yang difilter. Matriks ini bisa berukuran sembarang, tidak harus persegi.

Beras. 1. Implementasi operasi konvolusi.

Olahraga

    Menerapkan algoritma yang melakukan operasi konvolusi dari gambar asli dengan matriks-mask.

    Ukuran dan jenis topeng matriks diatur oleh pengguna.

    Gunakan matriks topeng berikut untuk menerapkan berbagai algoritma pemrosesan gambar:

    • untuk menghaluskan dan menekan noise pada gambar, gunakan topeng matriks 3x3 dengan bentuk berikut:

    untuk menekankan garis besar, topeng matriks dari jenis berikut digunakan:

1/9*

    untuk memilih garis besar, topeng jenis berikut digunakan:

4. Menerapkan filter median yang digunakan untuk menekan noise titik dan impuls. Piksel gambar dan tetangganya di area yang dipertimbangkan dijajarkan dalam rangkaian variasi (dalam nilai piksel naik atau turun) dan nilai pusat rangkaian variasi ini dipilih sebagai nilai piksel baru. Hasil dari pemfilteran rata-rata adalah bahwa setiap noise acak yang terkandung dalam gambar akan dihilangkan secara efektif. Ini karena setiap perubahan mendadak secara acak dalam intensitas piksel dalam area yang diminati akan diurutkan, mis. itu akan ditempatkan di atas atau di bawah nilai yang diurutkan dari area ini dan tidak akan dihitung, karena nilai tengah selalu diambil untuk nilai elemen yang baru.

5. Menerapkan algoritma embossing. Embossing dilakukan dengan cara yang sama seperti untuk rata-rata atau menggarisbawahi algoritma kontur. Setiap piksel dalam gambar diproses oleh matriks embossing 3x3. Misalnya, topeng matriks berikut dapat diambil sebagai kernel embossing:

Setelah nilai piksel diproses oleh kernel embossing, 128 ditambahkan ke dalamnya, sehingga nilai piksel latar belakang menjadi abu-abu sedang (merah = 128, hijau = 128, biru = 128). Jumlah di atas 255 dapat dibulatkan menjadi 255.

Dalam versi gambar timbul, garis luar tampak diekstrusi di atas permukaan. Arah iluminasi gambar dapat diubah dengan mengubah posisi 1 dan -1 di kernel. Jika, misalnya, nilai 1 dan -1 ditukar, maka arah iluminasi dibalik.

6. Pewarnaan air pada gambar. Filter cat air mengubah gambar, dan setelah diproses sepertinya dicat dengan cat air:

    Langkah pertama dalam menerapkan filter cat air adalah menghaluskan warna pada gambar. Salah satu metode anti-aliasing adalah dengan menerapkan rata-rata warna median pada setiap titik. Nilai warna setiap piksel dan 24 tetangganya (ukuran topeng matriks adalah 5x5) disusun dalam serangkaian variasi dalam urutan menurun atau menaik. Nilai warna median (ketiga belas) dalam seri variasi ditetapkan ke piksel tengah.

    setelah menghaluskan warna, Anda perlu menerapkan filter garis bawah untuk menyorot batas transisi warna.

Representasi gambar

Ada dua jenis utama representasi gambar - vektor dan raster.

Dalam representasi vektor, gambar digambarkan dengan seperangkat garis (vektor) yang berisi koordinat titik awal dan akhir, kelengkungan garis dan karakteristik geometris lainnya, aturan untuk membangun berbagai area dan karakteristik warna. Dengan kata lain, untuk representasi raster, perlu dibentuk model matematika tertentu. Oleh karena itu, representasi vektor digunakan terutama untuk menyelesaikan masalah sintesis gambar. Meskipun beberapa algoritma pengenalan gambar untuk pekerjaan mereka membutuhkan representasi vektor yang tepat, yang harus diperoleh dari gambar asli.

Citra raster adalah satu atau lebih matriks yang menggambarkan distribusi spasial karakteristik citra pada grid koordinat Cartesian tertentu. Dalam hal ini, gambar dibangun dari banyak titik dan memiliki struktur raster. Elemen utama representasi gambar raster adalah piksel (kependekan dari frasa "elemen gambar" - elemen gambar), yang memiliki koordinat dalam sistem koordinat raster dan beberapa atribut (warna, kecerahan, transparansi, dll.). Jumlah piksel pada koordinat X dan Y (horizontal dan vertikal) menentukan resolusi (dimensi) representasi citra. Warna piksel ditentukan berdasarkan kedalaman - jumlah bit yang diperlukan untuk menentukan warna apa pun.

Gambar raster, tergantung pada metode pengaturan warna piksel dan properti gambar asli, dibagi menjadi:

biner

Setengah suara

Palet

Penuh warna

Dalam representasi biner, warna piksel dapat berupa putih atau hitam dan dikodekan dalam satu bit. Bayangan adalah matriks. Setiap elemen I (i, j) dari matriks ini memiliki nilai 0 atau 1, di mana i adalah nomor baris, dan merupakan nomor kolom j dari elemen yang sesuai dengan piksel yang diberikan (Gbr. 1).

Dalam gambar skala abu-abu, piksel mewakili nilai kecerahan skala abu-abu. Indeks matriks yang menggambarkan gambar skala abu-abu menentukan posisi piksel pada raster, dan nilai elemen matriks

- mengatur kecerahannya I (i, j) (Gbr. 2).

Gambar palet dijelaskan oleh dua matriks (Gbr. 3). Satu menyimpan nilai indeks, yang menentukan referensi ke baris matriks palet. Matriks palet adalah peta warna. Ini berisi 3 grup kolom - sesuai dengan warna merah "R", hijau "G" dan biru "B". Mereka juga mengatur warna piksel yang sesuai.

Palet adalah matriks Nc 3, di mana Nc adalah jumlah warna.

Algoritme prapemrosesan gambar

Gambar penuh warna dibuat dalam format RGB dan mewakili tiga matriks R (i, j), G (i, j), B (i, j). Elemen yang sesuai dari setiap matriks berisi nilai intensitas warna merah, hijau dan biru untuk piksel yang ditentukan oleh indeks matriks. Dengan demikian, gambar penuh warna tidak memiliki peta warna dan warna setiap piksel diwakili oleh tiga angka yang diambil dari matriks yang sesuai (Gbr. 4).

Format bilangan dalam matriks dapat berupa bilangan bulat atau floating point. Kasus pertama mengacu pada apa yang disebut gambar digital yang diperoleh dengan menggunakan berbagai perangkat - pemindai, kamera digital, kamera televisi, dll. Dalam format inilah informasi tentang gambar disimpan dalam file grafik standar.

Opsi kedua digunakan untuk representasi internal gambar selama pemrosesan. Dalam hal ini, akan lebih mudah untuk menormalkan data intensitas ke satu rentang, misalnya, ke rentang, dan melakukan berbagai perhitungan dengan bilangan mengambang, lalu mengonversi hasilnya ke bentuk bilangan bulat asli. Metode ini memungkinkan Anda untuk mengurangi kesalahan perhitungan dan meningkatkan akurasi hasil pemrosesan.

Untuk gambar penuh warna, satu parameter adalah jumlah maksimum warna yang dapat direpresentasikan dalam format tersebut. Gambar yang paling umum digunakan memiliki 16, 256, 65536 (High Color) dan 10,7 juta (True Color) warna.

Algoritme prapemrosesan gambar

0 0 0 0 1 1 1 0 0

120 122 125 128 115 117 118

1 0 0 0 1 1 1 1 0

119 121 124 125 128 130 133

1 1 0 0 1 1 0 0 1

122 122 124 123 127 126 128

120 121 123 125 127 125 126

1 1 1 0 1 1 0 0 0

118 110 109 108 108 109 110

0 0 1 0 0 1 0 0 1

Algoritme prapemrosesan gambar

Matriks Indeks

31 15 03 09

Matriks palet

Algoritme prapemrosesan gambar

Gambar penuh warna dapat direpresentasikan tidak hanya dalam format RGB, tetapi juga menggunakan sistem warna lain.

Dalam sistem HSB, warna diwakili oleh karakteristik warna berikut: Hue - hue;

Saturasi - saturasi; Kecerahan - kecerahan.

Diyakini bahwa sistem warna ini sesuai dengan kekhasan persepsi warna manusia.

Dalam sistem LAB, warna dianggap sebagai kombinasi kecerahan dan dua nilai kromatisitas independen, yang menentukan warna sebenarnya dari suatu piksel. Chroma A - memilih warna dari magenta ke hijau. Chromaticity B - komponen warna kedua dipilih dari kisaran dari kuning ke cyan.

Ada sistem lain untuk mewakili warna. Secara alami, mereka semua terkait, dan dari satu representasi yang lain dapat diperoleh. Variasi sistem warna disebabkan oleh tugas yang diselesaikan dengan bantuan mereka. Misalnya, lebih mudah untuk melakukan koreksi warna dalam sistem LAB, mereproduksi gambar pada layar monitor dalam sistem RGB, mencetak lebih baik,

Algoritme prapemrosesan gambar

menggunakan representasi CMYK. Namun, bagaimanapun, saat memproses gambar dan mengenalinya, mereka bekerja dengan representasi raster dari gambar yang berisi satu atau lebih matriks.

Klasifikasi algoritma preprocessing

Algoritme prapemrosesan gambar akan dibagi menjadi beberapa kelompok berbeda tergantung pada fitur pengklasifikasiannya. Semua algoritme prapemrosesan harus meningkatkan kualitas gambar, atau mengubahnya ke bentuk yang paling nyaman untuk pemrosesan selanjutnya.

Algoritma yang ditujukan untuk meningkatkan reproduksi warna suatu gambar disebut algoritma koreksi warna. Grup ini juga mencakup algoritme yang bekerja dengan gambar halftone yang mengubah karakteristik kecerahan dan kontrasnya.

Algoritma yang ditujukan untuk memproses karakteristik spasial gambar disebut algoritma penyaringan spasial. Kelompok ini mencakup algoritma untuk menekan interferensi, algoritma untuk pemulusan spasial dan algoritma penguatan spasial, algoritma untuk penekanan dan penguatan frekuensi spasial.

Algoritma yang melakukan operasi geometrik pada citra disebut algoritma pemrosesan geometris... Ini termasuk:

Algoritme prapemrosesan gambar

Memotong gambar - pemilihan dari gambar asli bagian tertentu dari bentuk persegi panjang;

Ubah ukuran gambar. Algoritme ini menggunakan berbagai metode interpolasi yang memungkinkan untuk mengisi piksel yang hilang dengan benar pada gambar yang diperbesar, atau menghitung ulang nilai piksel saat gambar diperkecil.

Putar gambar. Algoritme ini memutar gambar asli dengan sudut tertentu, menghitung ulang nilai piksel dengan benar menggunakan berbagai metode interpolasi.

Algoritma yang melakukan transformasi dari satu sistem warna ke sistem warna lainnya disebut algoritma konversi warna... Mereka juga menyertakan algoritma untuk mengubah gambar berwarna menjadi skala abu-abu dan algoritma binarisasi yang mengubah gambar asli menjadi gambar biner.

Algoritme yang menyorot beberapa area pada citra asli menurut berbagai, seringkali kondisi informal disebut algoritma segmentasi. Contoh algoritme semacam itu dapat berupa, misalnya, algoritme yang harus memilih area teks dan informasi grafik pada gambar dokumen, atau algoritme yang memilih area dalam gambar teks yang merujuk pada kata-kata individual.

Algoritme prapemrosesan gambar

Algoritma penyaringan spasial

Pemfilteran spasial suatu citra dalam bentuk matematis adalah konvolusi diskrit dari citra diskrit dengan beberapa respons impuls filter spasial

Jika (i,j)

Im (i m, j n) h (m, n), di mana:

m N11 n N21

Im, Jika matriks gambar asli dan yang difilter, matriks h dari respons impuls filter,

N 11, N 21 adalah batas bawah dan atas kolom respons impuls, N 12, N 22 adalah batas kiri dan kanan baris respons impuls.

Matriks respon impuls dapat diperoleh dengan menghitung filter spasial berdasarkan parameter yang ditentukan. Sejumlah besar literatur yang dikhususkan untuk penyaringan digital, misalnya, dikhususkan untuk metode penghitungan filter spasial. Untuk perhitungan praktis, Anda dapat menggunakan paket matematika standar, misalnya, sistem "MATLAB" menyertakan sistem perhitungan filter "Desain Filter Gambar".

Perhatikan bahwa pemfilteran juga dapat dilakukan dalam domain frekuensi. Karena

Algoritme prapemrosesan gambar

Dalam hal, urutan penyaringan adalah sebagai berikut:

Mengonversi gambar dari domain spasial ke domain frekuensi menggunakan transformasi Fourier diskrit 2D

Lakukan perkalian elemen matriks frekuensi gambar dengan matriks frekuensi filter

Transformasikan hasil yang diperoleh ke dalam domain spasial menggunakan transformasi Fourier diskrit dua dimensi terbalik.

saya (x, y)

saya (f x, f y)

Jika (f x, f y) Im (f x, f y) H (f x, f y)

Jika (fx, fy)

Jika (x,y).

Memfilter gambar dalam domain frekuensi jarang digunakan karena jumlah komputasi yang besar. Namun, metode pemfilteran ini banyak digunakan dalam perhitungan teoretis saat menganalisis opsi untuk pemrosesan gambar. Ini memungkinkan Anda untuk memvisualisasikan dengan jelas jenis penyaringan apa yang dibutuhkan. Misalnya, jika Anda perlu menyorot perubahan tajam dalam kecerahan pada gambar, maka jelas bahwa Anda perlu menggunakan filter high-pass. Sebaliknya, jika Anda perlu menghilangkan noise frekuensi rendah - loop jitter, lonjakan individual, dll., maka Anda perlu menggunakan filter low-pass. Parameter filter khusus dipilih berdasarkan analisis frekuensi interferensi dan properti gambar asli.