- 1. Pemprosesan Imej dengan menggunakan Tetingkap Editor MATLAB
- 2. Pemprosesan Imej dengan MATLAB GUI
- Membuat Antara Muka Grafik MATLAB untuk Pemprosesan Imej
- MATLAB GUI Code untuk Pemprosesan Imej
- Jalankan kod MATLAB GUI untuk Pemprosesan Imej
Bayangkan mengarahkan kamera anda ke beberapa objek dan kamera memberitahu anda nama objek itu, ya, Google Lens di telefon pintar Android melakukan perkara yang sama menggunakan Pemprosesan Imej. Ini memberi komputer visi untuk mengesan dan mengenali perkara dan mengambil tindakan yang sewajarnya. Pemprosesan gambar mempunyai banyak aplikasi seperti Pengesanan & pengecaman wajah, kesan ibu jari, augmented reality, OCR, Imbasan kod bar dan banyak lagi. Terdapat banyak perisian yang tersedia untuk pemprosesan gambar, antaranya MATLAB adalah yang paling sesuai untuk dimulakan.
MATLAB dapat melakukan banyak operasi pemprosesan gambar lebih awal, tetapi untuk Memulakan Pemprosesan Imej di MATLAB, di sini kami akan menerangkan beberapa operasi asas seperti RGB ke Gray, memutar gambar, penukaran binari dll. Anda boleh membuat program automatik untuk penghapusan bunyi, gambar kejelasan, menyaring dengan menggunakan fungsi yang dijelaskan dalam tutorial ini.
Sebelum melangkah lebih jauh, jika anda baru menggunakan MATLAB, anda boleh melihat tutorial MATLAB kami sebelumnya untuk memahami dengan lebih baik:
- Bermula dengan MATLAB: Pengenalan Pantas
- Memadan Arduino dengan MATLAB - LED Berkelip
- Kawalan Motor DC Menggunakan MATLAB dan Arduino
- Stepper Motor Control menggunakan MATLAB dan Arduino
- Cara Memplot Graf Suhu Masa Sebenar menggunakan MATLAB
Di MATLAB, seperti biasa, ada dua cara untuk melakukan algoritma pemprosesan gambar, satu dengan memasukkan perintah secara langsung di tetingkap editor / perintah dan yang lainnya adalah dengan membuat GUI untuk yang sama. Di sini, kami akan menunjukkan kepada anda kedua-dua kaedah untuk melakukan operasi asas pemprosesan gambar di MATLAB.
1. Pemprosesan Imej dengan menggunakan Tetingkap Editor MATLAB
Sekarang, kami akan menulis kod untuk melakukan beberapa operasi asas pemprosesan gambar di tetingkap editor. Untuk mengetahui semua istilah asas yang digunakan dalam MATLAB ikuti pautan. Salin dan tampal kod di bawah di tetingkap editor, a = imread ('F: \ circuit digest \ pemprosesan gambar menggunakan matlab \ camerman.jpg'); subplot (2,3,1); imshow (a); b = rgb2gray (a); subplot (2,3,2); menunjukkan (b); c = im2bw (a); subplot (2,3,3); imshow (c); d = imadjust (b); subplot (2,3,4); imshow (d); e = a; e = rgb2gray (e); subplot (2,3,5); imhist (e); imfinfo ('F: \ circuit digest \ processing processing menggunakan matlab \ beard-man.jpg') = size (a) % colormap ('spring')
Dalam pemboleh ubah 'a', kami mengimport gambar menggunakan perintah imread ('nama file') dan kemudian membuat plot baris '2' dan kolom '3' menggunakan subplot (baris, lajur, posisi) dan memaparkan gambar yang diimport pada posisi ' 1 '. Untuk menunjukkan gambar, kami menggunakan perintah imshow ('filename') .
Berikut adalah beberapa arahan untuk melakukan beberapa pemprosesan asas pada gambar yang dimuat naik:
- Dalam pemboleh ubah 'b', kami mengubah gambar RGB menjadi gambar intensiti skala kelabu dengan menggunakan perintah rgb2gray ('nama file') dan memaparkannya dalam plot pada posisi '2'.
- Dalam pemboleh ubah 'c', kami menukar gambar menjadi gambar binari atau anda boleh mengatakan dalam format '0' (hitam) dan '1' (putih) dengan menggunakan perintah im2bw ('nama file') dan memaparkannya dalam plot pada kedudukan '3'.
- Dalam pemboleh ubah 'd', kami menyesuaikan atau memetakan nilai intensiti gambar skala abu-abu dengan menggunakan perintah imadjust ('nama file') dan menampilkannya dalam plot pada posisi '4'.
- Dalam pemboleh ubah 'e', kami memplot histogram gambar skala abu-abu dengan menggunakan perintah imhist ('nama file') dan memaparkannya dalam plot pada posisi '5'. Untuk merancang histogram, anda mesti menukar gambar menjadi skala kelabu dan anda akan dapat melihat histogram fail grafik tersebut.
- Perintah Imfinfo ('nama file dengan lokasi') digunakan untuk memaparkan maklumat mengenai fail grafik.
- Perintah = size ('filename') digunakan untuk menampilkan ukuran dan satah warna fail grafik tertentu.
- colormap ('spring') digunakan untuk mengubah jenis colormap fail grafik. Di sini, dalam kod saya saya menetapkan perintah ini sebagai komen tetapi anda boleh menggunakannya dengan membuang tanda peratusan. Terdapat banyak jenis warna dalam MATLAB seperti Jet, HSV, Hot, Cool, Summer, Autumn, Winter, Grey, Bone, Copper, Pink, Lines dan spring.
Seperti ini, ada sejumlah perintah dalam MATLAB yang dapat digunakan untuk melakukan tugas yang berbeda, Anda dapat memeriksa fungsi pemprosesan gambar di MATLAB dengan mengikuti pautan.
2. Pemprosesan Imej dengan MATLAB GUI
Membuat Antara Muka Grafik MATLAB untuk Pemprosesan Imej
Untuk membina GUI (Antaramuka Pengguna Grafik) untuk Pemprosesan Imej melancarkan GUI dengan menaip perintah di bawah di tetingkap arahan .
panduan
Tetingkap pop timbul akan terbuka, kemudian pilih GUI kosong baru seperti yang ditunjukkan dalam gambar di bawah,
Sekarang kita harus memilih bilangan tombol tekan (setiap butang tekan akan melakukan tugas yang berbeza) dan satu paksi untuk memaparkan gambar.
Untuk mengubah saiz atau mengubah bentuk Tombol Tekan atau Paksi, cukup klik padanya dan anda akan dapat menyeret sudut butang. Dengan mengklik dua kali pada salah satu dari ini, anda akan dapat mengubah warna, tali, tag dan pilihan lain pada butang tersebut. Selepas penyesuaian akan kelihatan seperti ini
Anda boleh menyesuaikan butang mengikut pilihan anda. Sekarang apabila anda menyimpan ini, kod dihasilkan di tetingkap Editor MATLAB. Edit kod yang dihasilkan untuk menetapkan tugas untuk menekan butang yang berbeza. Di bawah ini kami telah mengedit kod MATLAB.
MATLAB GUI Code untuk Pemprosesan Imej
Kod MATLAB yang lengkap untuk Pemprosesan Imej menggunakan MATLAB GUI, diberikan pada akhir projek ini. Selanjutnya kami menyertakan file GUI (.fig) dan file code (.m) di sini untuk diunduh, dengan menggunakan mana Anda dapat menyesuaikan butang atau ukuran sumbu sesuai dengan keperluan anda. Kami telah mengedit kod yang dihasilkan seperti yang dijelaskan di bawah.
Dalam fungsi 'uploadimage' , salin dan tampal kod di bawah ini untuk memasukkan fail dari PC. Di sini, perintah uigetfile ('jenis pelanjutan gambar') digunakan untuk mengimport gambar di GUI MATLAB. Baca fail itu menggunakan perintah imread () dan kemudian paparkan dengan perintah imshow () pada axes1 menggunakan axes (handles.axes1) . Sekarang, dengan setappdata perintah (), simpan pemboleh ubah di GUI sehingga pemboleh ubah dapat diakses ke satu bagian dari GUI ke bagian lain dari GUI.
a = uigetfile ('. jpg') a = imread (a); paksi (pemegang.axes1); imshow (a); setappdata (0, 'a', a)
Sekarang, dalam setiap fungsi Anda akan melihat perintah getappdata () yang digunakan untuk mengambil data yang disimpan menggunakan setappdata () di GUI.
Di sini kita akan menerangkan lapan fungsi yang biasa digunakan dalam pemprosesan gambar
S. No. |
Perintah |
Nama Butang |
Tugas yang Akan Dilaksanakan |
1. |
uigetfile () |
Muat Naik Gambar |
Klik untuk mengimport gambar dari Disk |
2. |
rgb2gray () |
RGB hingga Kelabu |
Klik untuk menukar gambar RGB menjadi skala kelabu |
3. |
im2bw () |
Tukar kepada Gambar Perduaan |
Klik untuk menukar gambar menjadi binari |
4. |
- |
LETAKKAN |
Klik untuk menetapkan semula gambar seperti asal |
5. |
imhist () |
Histogram |
Klik untuk melihat histogram gambar |
6. |
tidak lengkap () |
Gambar Pelengkap |
Klik untuk melihat gambar pelengkap |
7. |
tepi (nama fail, kaedah) |
Pengesanan Tepi |
Klik untuk mengesan bahagian tepi gambar |
8. |
imrotate (nama fail, sudut) |
Putar mengikut Pusing Jam |
Klik untuk memutar gambar ke arah arah jam |
9. |
imrotate (nama fail, sudut) |
Putar Anti Jam |
Klik untuk memutar gambar ke arah lawan arah jam |
1. Tukar gambar RGB menjadi skala kelabu
Dalam fungsi 'rgb2gray' , salin dan tampal kod di bawah ini untuk menukar gambar RGB menjadi skala kelabu dengan menggunakan perintah rgb2gray () .
a = getappdata (0, 'a'); agray = rgb2gray (a); paksi (pemegang.axes1); imshow (agray);
2. Tukar kepada Gambar Perduaan
Dalam fungsi 'im2bw' , salin dan tampal kod di bawah ini untuk menukar gambar menjadi gambar binari atau anda boleh mengatakan dalam format '0' (hitam) dan '1' (putih) dengan menggunakan perintah im2bw () .
a = getappdata (0, 'a'); abw = im2bw (a); paksi (pemegang.axes1); imshow (abw);
3. Tetapkan semula ke Gambar Asal
Dalam fungsi 'reset' , salin dan tampal kod di bawah ini untuk menetapkan semula gambar yang diedit ke gambar asal.
a = getappdata (0, 'a'); paksi (pemegang.axes1); imshow (a);
4. Histogram Imej Plot
Dalam 'histogram' fungsi, copy dan paste di bawah kod untuk plot histogram imej skala kelabu dengan menggunakan arahan imhist ('filename') dan memaparkannya dalam pada axes1 . Untuk merancang histogram, anda mesti menukar gambar menjadi skala kelabu dan kemudian anda dapat melihat histogram fail grafik tersebut.
a = getappdata (0, 'a'); ahist = a; ahist = rgb2gray (ahist); paksi (pemegang.axes1); imhist (ahist);
5. Tukar ke Gambar Pelengkap
Dalam fungsi 'komplemen' , salin dan tampal kod di bawah ini untuk melihat pelengkap fail grafik yang disisipkan dengan menggunakan perintah imcomplement () .
a = getappdata (0, 'a'); acomp = a; acomp = imcomplement (acomp); paksi (pemegang.axes1); imshow (acomp);
6. Edge Detection menggunakan Kaedah Canny
Dalam fungsi 'edge' , salin dan tampal kod di bawah ini untuk mengesan dan mencari tepi dalam gambar skala kelabu dengan menggunakan tepi arahan ('nama fail', 'kaedah') . Di tempat kaedah anda boleh memilih antara tiga ini, Canny, Prewitt dan montage . Kami menggunakan kaedah Canny untuk pengesanan tepi. Anda juga tidak dapat mengesan tepi secara langsung dari gambar asal, pertama anda harus menukarnya menjadi skala kelabu dan kemudian anda dapat mengesan pinggirnya.
a = getappdata (0, 'a'); aedge = a; aedge = rgb2gray (aedge); aedge = tepi (aedge , 'Canny') ' sumbu (pegangan.axes1); imshow (aedge);
7. Putar Gambar mengikut arah jam
Dalam fungsi 'mengikut arah jam' , salin dan tampal kod di bawah ini untuk memutar gambar ke arah arah jam dengan menggunakan perintah imrotate (nama fail, 'sudut')
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 270); paksi (pemegang.axes1); imshow (aclock);
8. Putar Imej Anti Jam
Dalam fungsi 'berlawanan arah jam' , salin dan tampal kod di bawah ini untuk memutar gambar ke arah berlawanan arah jam dengan menggunakan perintah imrotate (nama fail, 'sudut')
a = getappdata (0, 'a'); aclock = a; aclock = imrotate (aclock, 90); paksi (pemegang.axes1); imshow (aclock);
Jalankan kod MATLAB GUI untuk Pemprosesan Imej
Sekarang, klik pada butang 'RUN' untuk menjalankan kod yang diedit dalam fail.m
MATLAB mungkin mengambil masa beberapa saat untuk bertindak balas, jangan mengklik butang GUI sehingga MATLAB menunjukkan pesanan sibuk di sudut kiri bawah seperti gambar di bawah,
Apabila semuanya sudah siap, import gambar dari PC dengan mengklik butang 'Upload Image'. Sekarang, anda akan dapat menukar atau memutar gambar dengan mengklik butang yang sesuai. Jadual di bawah akan menunjukkan kepada anda tugas yang kita lakukan dengan mengklik mana-mana butang tertentu:
Hasil klik pada setiap butang akan ditunjukkan seperti di bawah ini,
Kerja lengkap setiap butang ditunjukkan dalam Video di bawah.
Anda bahkan boleh melakukan pemprosesan gambar tahap lanjutan dengan Kotak Alat Pemprosesan Imej yang boleh anda beli dari laman rasmi MATHWORKS, beberapa operasi tahap awal disenaraikan di bawah:
- Operasi geometri
- Sekat operasi
- Reka bentuk penapisan dan penapis linear
- Transformasi
- Analisis dan peningkatan imej
- Operasi gambar binari