Anda di halaman 1dari 35

Bagian 1

Pendahuluan

1.1 Citra dan Gambar

Manusia merupakan makhluk yang paling visual. Hal tersebut didasari pada
kemampuan dalam merasakan maupun menilai jelas tidaknya suatu visualisasi objek dalam
waktu yang singkat. Kemampuan yang dimiliki manusia terus berkembang, terutama dalam
menangkap informasi visual sehingga dapat dengan mudah membedakan warna, mengenali
wajah, dan yang lainnya meskipun dalam waktu yang singkat. Namun pada dasarnya, objek
visual secara cepat juga akan berubah keadaan, seperti halnya keadaan gelap terangnya.

Salah satu cara untuk mengatasi kurang maksimalnya informasi visual, dapat dilakukan
suatu pemrosesan citra. Oleh karena itu, pada bahasan ini memfokuskan pada objek diam
(gambar) bukan objek bergerak. Sehingga kedepannya berbagai objek yang ada disekitar kita
dapat dengan maksimal kita perjelas agar informasi visual yang terkandung dapat diterima
lebih baik. Contohnya seperti, foto seseorang, pemandangan, mikropotograf dari komponen
elektronik, pencitraan medis, dsb.

1.2 Pengolahan Citra


Pengolahan citra merupakan pengubahan sifat objek visual agar jauh lebik baik guna
1. meningkatkan informasi visual untuk interpretasi manusia,
2. menyederhanakan dan mengubah bentuknya agar mudah terbaca oleh mesin.
Pengolahan citra digital menggunakan perangkat komputer dalam memperbaiki sifat
citra digital. Perlu dipahami bahwa kedua aspek yang telah disebutkan merupakan hal yang
berlainan tetapi sama pentingnya dalam mendasari pengolahan citra. Penjelasannya bahwa,
dari sisi manusia lebih membutuhkan objek visual (gambar) yang tajam, jelas, dan rinci.
Sedangkan kebutuhan mesin lebih memerlukan gambar yang sederhana dan tidak berantakan.
Contoh (1) meliputi :
 Pemangkasan tepian citra agar tampak lebih tajam (croping) ; contoh
ditunjukkan pada gambar 1.1. Pada gambar dapat diperhatikan bahwa gambar
kedua tampak lebih fokus dan tajam. Pemangkasan tepian gambar menjadi hal
penting sebelum pencetakan. Sehingga proses penajaman tersebut sering
dilakukan.
a. Citra asli b. Setelah dipertajam

Gambar 1.1 Mempertajam Citra

 Menghapus "noise" dari gambar; noise merupakan gangguan pada citra. Contoh
diberikan pada gambar 1.2. Noise adalah masalah yang sangat umum dan salah
satu penyebabnya oleh ketidaksempurnaan kinerja komponen elektronik. Untuk
masing-masing jenis noise membutuhkan metode penghapusan yang berbeda.

a. Citra asli b. Setelah penghapusan noise

Gambar 1.2 Penghapusan noise dari citra

 Menghapus gerakan blur dari citra. Contoh diberikan pada gambar 1.3.
Perhatikan bahwa pada citra yang telah dihapus (b) lebih jelas dan detil
dibandingkan pada gambar asli (a). Buram/blur dapat terjadi ketika kecepatan
pengambilan oleh kamera tidak sebanding dengan kecepatan objek. Hal ini
sering ditemui pada objek yang bergerak cepat sepert : laju atlet, kendaraan, dsb.
a. Citra asli b. Setelah penghilangan blur

Gambar 1.3 Penghilangan blur pada citra

Contoh (2) dapat meliputi:

 Memperoleh tepi citra. Ini mungkin diperlukan untuk pengukuran objek di


sebuah citra. Contoh ditunjukkan pada gambar 1.4. Setelah kita memiliki
ujungnya, kita dapat mengukurnya menyebar, dan area yang terkandung di
dalamnya. Kita juga dapat menggunakan algoritma deteksi tepi sebagai langkah
pertama dalam peningkatan tepi, seperti yang kita lihat di atas. Dari hasil tepi,
kita melihat bahwa mungkin perlu sedikit meningkatkan citra asli, untuk
membuat tepi lebih jelas.

` a. Citrar asli b. Tepi-tepi citra


Gambar 1.4 Mencari tepi dari citra
 Menghapus detail dari citra. Untuk tujuan pengukuran atau penghitungan, kita
mungkin tidak tertarik pada semua detail dalam suatu citra. Misalnya, sebuah
mesin memeriksa benda-benda di sebuah rakitan garis, satu-satunya masalah
yang menarik adalah bentuk, ukuran atau warna. Untuk kasus seperti itu, kita
mungkin mau untuk menyederhanakan citra. Gambar 1.5 menunjukkan
contoh: dalam gambar (a) adalah gambar kerbau, dan gambar (b)
menunjukkan versi kabur di mana detail asing (seperti batang kayu di latar
belakang) telah dihapus. Perhatikan bahwa dalam gambar (b) semua detail
halus adalah hilang; yang tersisa adalah struktur gambar yang kasar. Kita bisa
misalnya mengukur ukuran dan bentuk hewan tanpa terganggu oleh detail
yang tidak perlu.

a. Citra asli b. Pengebluran menghilangkan detail

Gambar 1.5 Pengebluran citra.


1.3 Akuisisi dan Sampling Citra
Pengambilan sampel (sampling) mengacu pada proses digitalisasi fungsi
berkelanjutan. Sebagai contoh, misalkan kita mengambil fungsI

pada hal ini nilai x digambarkan dalam sepuluh titik. Poin sampel yang
dihasilkan ditunjukkan pada Gambar 1.6. Berdasarkan gambar didapati undersampling,
di mana jumlah titik tidak cukup untuk merekonstruksi fungsi. Misalkan kita ambil
fungsi dengan 100 titik, seperti yang ditunjukkan pada gambar 1.7. dapat dengan jelas
rekonstruksi fungsi jauh lebih baik dari sebelumnya. Sebagai dasar dalam poin sampel
yang cukup, dapat disyaratkanbahwa periode pengambilan sampel tidak lebih dari
setengah dalam fungsi . Hal ini dikenal sebagai kriteria Nyquist dan dapat dirumuskan
lebih tepat dalam kasus "frekuensi", yang dibahas dalam bab 4. Kriteria Nyquist dapat
dinyatakan sebagai teorema pengambilan sampel, yang pada dasarnya bahwa fungsi
kontinu dapat direkonstruksi dari sampelnya jika frekuensi sampling setidaknya dua
kali frekuensi maksimum dalam fungsi.

Gambar 1.6: Mengambil sampel suatu fungsi -- undersampling

Gambar 1.7: Mengambil sampel suatu fungsi dengan lebih banyak poin

Pengambilan sampel citra mengharuskan kita mempertimbangkan kriteria


Nyquist, ketika kita menganggap citra sebagai fungsi kontinu dari dua variabel, dan kita
ingin sampel menghasilkan citra digital. Contoh ditunjukkan pada gambar 1.8. Tepi
bergerigi pada citra undersampled adalah contoh aliasing . Oleh karena itu, dapat
dipahami bahwa tingkat sampling akan mempengaruhi resolusi akhir citra. Untuk
mendapatkan citra sampel (digital), dapat dimulai dengan representasi kontinu. Untuk
melihat citra, kita merekam energi yang dipantulkan darinya; dapat menggunakan
cahaya tampak atau sumber energi lain.
Pengambilan sampel yang benar; tanpa aliasing Versi undersampled dengan aliasing

Gambar 1.8: Efek pengambilan sampel

 Menggunakan cahaya
Cahaya adalah sumber energi utama untuk citra dan dapat diamati secara
langsung. Kita semua akrab dengan foto-foto, yang merupakan rekaman citra
pemandangan visual.
Banyak citra digital ditangkap menggunakan cahaya tampak sebagai sumber
energinya; hal ini memiliki keuntungan karena aman, murah, mudah dideteksi dan siap
diproses dengan perangkat keras yang sesuai. Dua metode yang sangat populer untuk
menghasilkan citra digital adalah dengan kamera digital atau pemindai flat-bed.

1. Kamera CCD.
Kamera semacam ini memiliki pengganti film yang biasa, sebuah array
photosites; kamera adalah perangkat elektronik silikon yang output tegangannya
sebanding dengan intensitas cahaya yang jatuh pada CCD.
Untuk kamera yang terpasang pada komputer, informasi dari photosites
kemudian di-output ke media penyimpanan yang sesuai. Secara umum, ini diproses
pada perangkat keras, karena jauh lebih cepat dan lebih efisien daripada perangkat
lunak yang menggunakan kartu bingkai. Kamera memungkinkan citra ditangkap
dalam waktu yang sangat singkat dengan urutan masing-masing seperseribu detik.
Citra yang diperoleh kemudian dapat disalin ke perangkat penyimpanan
permanen.Hal Ini ditunjukkan secara skematis pada gambar 1.9.
Outputnya akan berupa array nilai yang merepresentasikan titik sampel dari
citra aslinya. Elemen-elemen dari array ini disebut elemen citra, atau lebih tepatnya
piksel. Kamera digital masih menggunakan beragam perangkat, dari disket dan CD
hingga berbagai kartu khusus dan "memory stick". Informasi citra tersebut
kemudian dapat diunduh dari perangkat tersebut ke hard disk komputer.

Gambar 1.9: Mengambil gambar dengan array CCD

2. Pemindai flatbed.
Ini bekerja berdasarkan prinsip yang mirip dengan kamera CCD. Pengambilan
data sekaligus pada array besar, satu baris fotosit bergerak melintasi citra,
menangkapnya baris-demi-baris saat bergerak. Hal ini ditunjukkan secara skematis
pada Gambar 1.10. Ppada hal ini proses jauh lebih lambat daripada mengambil citra
dengan kamera dan memerlukan perangkat lunak khusus untuk
mengoperasikannya.
Gambar 1.10: Mengambil gambar dengan pemindai CCD

 Sumber energi lainnya


Cahaya tampak adalah bagian dari spektrum elektromagnetik: dimana radiasi
energi berbentuk gelombang dengan panjang gelombang yang berbeda-beda. Ini
berkisar dari sinar kosmik dengan panjang gelombang yang sangat pendek, hingga daya
listrik yang memiliki panjang gelombang yang sangat panjang. Gambar 1.11
menggambarkan hal ini. Untuk tinjauan mikroskopi, kita dapat menggunakan sinar-x
atau berkas elektron. Seperti yang dapat kita lihat dari gambar 1.11, sinar-x memiliki
panjang gelombang lebih pendek daripada cahaya tampak, dengan demikian dapat
digunakan untuk menyelesaikan objek yang lebih kecil daripada yang dimungkinkan
dengan cahaya tampak. Sinar-X tentu saja juga dapat menentukan struktur benda-benda
yang biasanya tersembunyi dari pandangan (non visibel): seperti tulang.
Gambar 1.11: Spektrum elektromagnetik

Metode lebih lanjut untuk memperoleh citra adalah dengan menggunakan


tomografi x-ray, yang mana objek dikelilingi oleh sinar x-ray. Ketika sinar ditembakkan
melalui objek, maka akan terdeteksi di sisi lain dari objek, seperti yang ditunjukkan
pada gambar 1.12. Saat sinar bergerak di sekitar objek, citra objek dapat
dikontruksikan; citra seperti itu disebut tomogram. Dalam pemindaian CAT (Computed
Axial Tomography), pasien berada di dalam tabung di mana sinar-x ditembakkan. Ini
memungkinkan sejumlah besar "irisan" tomografi terbentuk, yang kemudian dapat
digabungkan untuk menghasilkan citra tiga dimensi.
Gambar 1.12: X-ray tomography
1.4 Citra dan Citra Digital
Misalkan kita mengambil citra, seperti foto. Untuk saat ini, foto diasumsikan
monokromatik (yaitu, nuansa abu-abu saja), jadi tidak ada warna. Kita dapat
menganggap citra ini sebagai fungsi dua dimensi, yang mana nilai fungsi memberikan
kecerahan citra pada titik tertentu, seperti yang ditunjukkan pada gambar 1.13. Kita
dapat mengasumsikan bahwa dalam nilai kecerahan citra seperti itu dapat berupa
bilangan real dalam kisaran 0,0 (hitam) hingga 1,0 (putih). Rentang x dan y jelas akan
tergantung pada citra, sekaligus menjadi nilai minimum dan maksimumnya.

Gambar 1.13: Citra sebagai fungsi


Fungsi itu dapat diplot, seperti yang ditunjukkan pada gambar 1.14. Namun,
plot seperti itu hanya terbatas bagi kita dalam hal menganalisis citra. Bagaimanapun
Konsep citra sebagai fungsi, akan sangat penting untuk pengembangan dan
implementasi teknik pemrosesan citra.
Gambar 1.14: Citra dari gambar 1.13 diplot sebagai fungsi dari dua variabel
Citra digital berbeda dari foto yang nilai x, y, dan f (x, y) semuanya diskrit.
Biasanya, citra hanya mengambil nilai integer, sehingga citra yang ditunjukkan pada
gambar 1.13 akan memiliki x dan y masing-masing berkisar dari 1 hingga 256, dan
nilai kecerahan juga mulai dari 0 (hitam) hingga 255 (putih). Citra digital, seperti di
atas, dapat dianggap sebagai sejumlah besar titik sampel dari citra kontinu, yang
masing-masing memiliki kecerahan terukur tertentu; titik-titik ini adalah piksel yang
merupakan citra digital. Luasan dari piksel citra dapat diumpamakan sebagai matriks:
misalnya,3x3, atau 5x7. Contoh dari matriks tersebut disajikan pada gambar 1.15.
Penggunaan luasan matriks menggunakan perumusan ganjil (3x3,dsb) agar dapat
ditentukan nilai pixel tengahnya.

Gambar 1.15: Piksel, dengan pixel tetangga


1.5 Pemanfaatan Pengolahan Citra
Pemrosesan citra memiliki beragam pengaplikasian; hampir setiap bidang sains
dan teknologi dapat menggunakan metode pemrosesan citra. Berikut ini beberapa
pengaplikasian pemrosesan citra.
1) Obat-obatan
 Inspeksi dan interpretasi citra yang diperoleh dari sinar-X, scan MRI atau CAT,
 Analisis citra sel, kariotipe kromosom.
2) Pertanian
 Pandangan satelit / udara atas tanah, misalnya, untuk menentukan berapa banyak
lahan yang digunakan untuk tujuan yang berbeda, atau untuk menyelidiki
kesesuaian daerah yang berbeda untuk tanaman yang berbeda,
 Inspeksi buah dan sayuran - membedakan produk yang baik dan segar dari yang
lama.
3) Industri
 Pemeriksaan barang secara otomatis pada jalur produksi,
 Inspeksi sampel kertas.
4) Penegakan hukum
 Analisis sidik jari,
 Menajamkan atau menghilangkan kekaburan citra pada kamera kecepatan.

1.6 Aspek pemrosesan citra


Aspek pengolahan citraberkaitan dengan perbedaan algoritma yang berbeda
terhadap kasus ataupun hal yang berbeda pula.
1) Peningkatan citra. Ini mengacu pada pemrosesan citra sehingga hasilnya
lebih cocok untuk aplikasi tertentu. Contohnya termasuk:
• Mempertajam atau menghilangkan citra yang tidak fokus,
• Menyoroti tepi,
• Meningkatkan kontras citra, atau mencerahkan citra,
• Menghilangkan kebisingan.
2) Pemulihan citra. Ini dapat dianggap sebagai membalikkan kerusakan yang
dilakukan pada citra oleh sebab yang diketahui, misalnya:
• Menghilangkan kekaburan yang disebabkan oleh gerakan linear,
• Penghapusan distorsi optik,
• Menghilangkan gangguan berkala.
3) Segmentasi citra. Ini melibatkan pengelompokan citra menjadi bagian-
bagian penyusun, atau mengisolasi aspek-aspek tertentu dari suatu citra:
• Menemukan garis, lingkaran, atau bentuk tertentu dalam suatu citra,
• Foto udara, mengidentifikasi mobil, pohon, bangunan, atau jalan.
Aspek ini saling berkesinambungan; algoritma yang diberikan dapat digunakan
untuk peningkatan citra atau untuk restorasi citra. Namun, kita harus paham apa yang
ingin kita lakukan dengan citra kita: cukup membuatnya terlihat lebih baik
(peningkatan), atau menghilangkan kerusakan (restorasi).

1.7 Pemrosesan Citra


Pada pemrosesan citra dilakukan melalui tahap-tahap yang sistematis. Sebagai
contohnya disajikan tentang tahap pemrosesan otomatis untuk mendapatkan kode pos
dari amplop. Berikut tahapannya:
1. Memperoleh citra.
Pertama, kita perlu menghasilkan citra digital dari amplop kertas. Ini
dilakukan menggunakan kamera CCD atau pemindai.
2. Preprocessing.
Ini adalah langkah yang diambil sebelum tugas pemrosesan citra "utama".
Masalahnya di sini adalah untuk melakukan beberapa tugas dasar untuk membuat
citra yang dihasilkan lebih cocok untuk pekerjaan yang harus diikuti. Dalam hal
ini, ini mungkin melibatkan peningkatan kontras, menghilangkan noise, atau
mengidentifikasi wilayah yang mungkin berisi kode pos.
3. Segmentasi.
Di sinilah kita benar-benar "mendapatkan" kode pos; dengan kata lain kita
mengekstrak dari citra bagian yang hanya berisi kode pos.
4. Representasi dan deskripsi.
Istilah-istilah ini merujuk pada penggalian fitur-fitur khusus yang
memungkinkan kita untuk membedakan antara objek. Di sini kita akan mencari
kurva, lubang, dan sudut yang memungkinkan kita untuk membedakan berbagai
digit yang merupakan kode pos.
5. Pengakuan dan interpretasi.
Ini berarti menempatkan label ke objek berdasarkan deskriptornya (dari
langkah sebelumnya), dan memberikan makna pada label tersebut. Jadi kita
mengidentifikasi digit tertentu, dan kita menafsirkan string empat digit di akhir
alamat sebagai kode pos.

1.8 Jenis gambar digital

empat tipe dasar gambar:

1. Biner. Setiap piksel hanya hitam atau putih. Karena hanya ada dua nilai yang
mungkin untuk setiap piksel, kita hanya perlu satu bit per piksel. Karena itu gambar
seperti itu bisa sangat efisien dalam hal penyimpanan. Gambar yang mungkin cocok
dengan representasi biner termasuk teks (dicetak atau tulisan tangan),? sidik jari, atau
rencana arsitektur.

Contohnya adalah gambar yang ditunjukkan pada gambar 1.4 (b) di atas. Dalam
gambar ini, kita hanya memiliki keduanya warna: putih untuk tepi, dan hitam untuk
latar belakang. Lihat? Angka 1.16 di bawah ini.

Gambar 1.16: Gambar biner

2. Skala abu-abu. Setiap piksel berwarna abu-abu, biasanya dari 0 (hitam) hingga 255
(putih). Kisaran ini berarti bahwa setiap piksel dapat diwakili oleh delapan bit, atau
tepat satu byte. Ini sangat kisaran alami untuk penanganan gambar. Rentang skala
abu-abu lainnya digunakan, tetapi umumnya mereka kekuatan 2. Gambar seperti itu
muncul dalam pengobatan (sinar-X), gambar karya cetak, dan bahwa tingkat abu-abu
256 cukup untuk sebagian besar objek alami.
Contohnya adalah adegan jalanan yang ditunjukkan pada gambar 1.1 di atas, dan
gambar 1.17 di bawah ini.
3. True color, atau RGB. Di sini setiap piksel memiliki warna tertentu; warna yang
sedang dijelaskan oleh jumlah merah, hijau dan biru di dalamnya. Jika masing-masing
komponen ini memiliki jangkauan 0-255, ini memberi total dari
255x255x255=16777216 beda warna yang mungkin pada gambar. Ini cukup warna
untuk gambar apa pun. Karena jumlah total bit yang diperlukan untuk setiap piksel
adalah 24, gambar seperti itu disebut juga Gambar warna 24-bit. Gambar seperti itu
dapat dianggap terdiri dari “Stack” dari tiga matriks; mewakili nilai merah, hijau dan
biru untuk setiap piksel. Ini berarti bahwa untuk setiap piksel sesuai tiga nilai.
Contoh ditunjukkan pada Gambar 1.18.
4. indexed. Sebagian besar gambar berwarna hanya memiliki sebagian kecil lebih dari
enam belas juta kemungkinan warna. Untuk kenyamanan penyimpanan dan? File
penanganan, gambar memiliki peta warna yang terkait,

Gambar 1.17: Gambar skala abu-abu

atau palet warna, yang hanyalah daftar semua warna yang digunakan dalam gambar itu.
Setiap piksel memiliki nilai yang tidak memberikan warnanya (seperti untuk gambar RGB),
tetapi indeks untuk warna dalam gambar.

Lebih mudah jika suatu gambar memiliki 256 warna atau kurang, untuk itu nilai indeks hanya
akan membutuhkan masing-masing satu byte untuk disimpan. Beberapa format file
(misalnya, Compuserve GIF), hanya bolehkan 256 warna atau lebih sedikit di setiap gambar,
untuk alasan inilah.

Gambar 1.19 menunjukkan contoh. Dalam gambar ini indeksnya, alih-alih menjadi nilai abu-
abu piksel, hanya indeks ke dalam peta warna. Tanpa peta warna, gambar akan sangat gelap
dan tidak berwarna. Dalam grafik, misalnya, piksel berlabel 5 bersesuaian dengan 0,2627
0,2588 0,2549, yang merupakan warna keabu-abuan yang gelap.
1.9 Ukuran File Gambar
File gambar cenderung besar. Kami akan menyelidiki jumlah informasi yang
digunakan dalam gambar yang berbeda jenis ukuran yang bervariasi. Misalnya,
anggaplah kita mempertimbangkan 512 x 512 gambar biner. Jumlah bit yang digunakan
dalam gambar ini (dengan asumsi tidak ada kompresi, dan mengabaikan, demi diskusi,
apa saja informasi tajuk) adalah

Gambar 1.18: Gambar berwarna asli


Gambar 1.19: Gambar berwarna yang diindeks

(Di sini kita menggunakan konvensi bahwa satu kilobita adalah seribu byte, dan satu
megabita adalah satu juta byte.)

Gambar skala abu-abu dengan ukuran yang sama membutuhkan:

Jika sekarang kita mengalihkan perhatian kita ke gambar berwarna, setiap piksel
dikaitkan dengan 3 byte warna informasi. 512x512 gambar dengan demikian
membutuhkan

Banyak gambar tentu saja lebih besar dari ini; gambar satelit mungkin dari beberapa
urutan seribu piksel di setiap arah.

1.10 Persepsi gambar


Sebagian besar pemrosesan gambar berkaitan dengan membuat gambar tampak?
Lebih baik? untuk manusia. Karena itu kita harus menyadari keterbatasan sistem visual
manusia. Persepsi gambar terdiri dari dua langkah dasar:
1. menangkap gambar dengan mata,
2. mengenali dan menafsirkan gambar dengan korteks visual di otak.
Kombinasi dan variabilitas yang luar biasa dari langkah-langkah ini
memengaruhi cara kita memandang dunia sekitar kita.
Ada beberapa hal yang perlu diingat:
1. Intensitas yang diamati bervariasi sesuai dengan latar belakang. Satu blok abu-abu
akan tampak lebih gelap jika ditempatkan pada latar belakang putih daripada jika
ditempatkan pada latar belakang hitam. Itu kita tidak menganggap skala abu-abu
“sebagaimana adanya”, melainkan karena mereka berbeda dari lingkungan mereka.
Digambar 1.20 kotak abu-abu ditampilkan pada dua latar belakang yang berbeda.
Perhatikan betapa gelapnya itu kotak muncul ketika dikelilingi oleh abu-abu terang.
Namun, dua kotak pusat memiliki intensitas yang persis sama.

Gambar 1.20: Kotak abu-abu dengan latar belakang berbeda


2. Kita dapat mengamati intensitas yang tidak ada sebagai batang di berbagai tingkat
abu-abu. Lihat untuk contoh gambar 1.21. Gambar ini bervariasi secara terus menerus
dari terang ke gelap saat kami melakukan perjalanan dari kiri ke kanan. Namun, tidak
mungkin bagi mata kita untuk tidak melihat beberapa tepi horizontal pada gambar ini.
3. Sistem visual kita cenderung melakukan undershoot atau overshoot di sekitar batas
wilayah yang berbeda intensitas. Sebagai contoh, misalkan kita memiliki gumpalan
abu-abu terang pada latar belakang abu-abu gelap. Sebagai mata kita bergerak dari latar
belakang gelap ke daerah terang, batas wilayah itu tampak lebih ringan daripada yang
lain. Sebaliknya, pergi ke arah lain, batas latar belakang tampak lebih gelap daripada
yang lain.
Kita telah melihat dalam bab sebelumnya bahwa matriks dapat ditangani dengan sangat
efisien di Matlab. Gambar dapat dianggap sebagai matriks yang elemen-elemennya
adalah nilai piksel dari gambar tersebut. Di dalam Bab ini kita akan menyelidiki
bagaimana kemampuan matriks Matlab memungkinkan kita untuk menyelidiki gambar
dan sifat-sifatnya.

1.11 Gambar grayscale

Misalkan sudah memulai Matlab. Anda akan memiliki Matlab command window, dan di
dalamnya prompt Matlab
Gambar 1.21: Intensitas yang terus bervariasi

siap menerima perintah. Ketikkan perintah

>> w = imread ('wombats.tif');

Ini mengambil nilai abu-abu dari semua piksel dalam gambar skala abu-abu wombats.tif dan
menempatkan semuanya ke dalam matriks w. Matriks ini sekarang menjadi variabel Matlab,
jadi kita dapat melakukan berbagai matriks operasi di atasnya. Secara umum fungsi imread
membaca nilai piksel dari file gambar, dan mengembalikan matriks dari semua nilai piksel.

Dua hal yang perlu diperhatikan tentang perintah ini:

1. Berakhir dengan tanda titik koma; ini memiliki efek tidak menampilkan hasil dari perintah
ke layar. Sebagai hasil dari perintah khusus ini adalah matriks ukuran 256x256, atau dengan
65536 elemen, kami tidak ingin semua nilainya ditampilkan.

2. Nama wombats.tif diberikan dalam tanda kutip tunggal. Tanpa mereka, Matlab akan
berasumsi

bahwa wombats.tif adalah nama variabel, bukan nama file.

Sekarang kita bisa menampilkan matriks ini sebagai gambar skala abu-abu:

>> figure, imshow (w), pixval on

Ini sebenarnya tiga perintah dalam satu baris. Matlab memungkinkan banyak perintah untuk
dimasukkan baris yang sama; menggunakan koma untuk memisahkan perintah yang berbeda.
Tiga perintah yang kami gunakan di sini adalah:
1. figure, yang menciptakan gambar di layar. Figur adalah jendela di mana objek grafis
dapat ditempatkan. Objek dapat termasuk gambar, atau berbagai jenis grafik.
2. imshow (g), yang menampilkan matriks g sebagai gambar.
3. pixval on, yang mengaktifkan nilai pixel di gure kita. Ini adalah tampilan nilai abu -
abu dari piksel dalam gambar. Mereka muncul di bagian bawah angka dalam bentuk
cxr=p
dimana c adalah nilai kolom dari piksel yang diberikan; r nilai barisnya, dan p
nilainya abu-abu. Sejak wombats.tif adalah gambar skala abu-abu 8-bit, nilai piksel
muncul sebagai bilangan bulat dalam kisaran 0-255

Ini ditunjukkan pada Gambar 1.22.

Gambar 1.22: Gambar wombats dengan pixval on

Jika tidak ada angka terbuka, maka perintah imshow, atau perintah lain yang menghasilkan
objek grafis, akan membuka gambar baru untuk menampilkan objek. Namun, itu praktik yang
baik untuk gunakan perintah angka kapan pun Anda ingin membuat angka baru.

Kita dapat menampilkan gambar ini secara langsung, tanpa menyimpan nilai abu-abu ke
matriks, dengan perintah

imshow ('wombats.tif')

Namun, lebih baik menggunakan matriks, mengingat ini ditangani dengan sangat efisien di
Matlab.
1.12 Gambar RGB
Seperti yang akan kita bahas dalam sub bab 11; kita perlu mendefinisikan warna dalam
beberapa cara standar, biasanya sebagai bagian dari sistem koordinat tiga dimensi;
seperti itu disebut model warna. Sebenarnya ada sejumlah metode berbeda untuk
menggambarkan warna, tetapi untuk tampilan dan penyimpanan gambar dari model
standar adalah RGB, yang dapat kita bayangkan semua warna duduk di dalam “kubus
warna” dari sisi 1 seperti yang ditunjukkan pada gure 1.23. Warna sepanjang diagonal
hitam-putih, ditunjukkan dalam diagram

Gambar 1.23: Kubus warna untuk model warna RGB


sebagai garis putus-putus, apakah titik-titik ruang di mana semua? ,? ,? nilainya sama.
Mereka adalah intensitas abu-abu yang berbeda. Kita mungkin juga menganggap
sumbu kubus warna sedang didiskritisasi ke bilangan bulat dalam kisaran 0-255.
RGB adalah standar untuk tampilan warna: pada monitor komputer; di TV. Tapi
ternyata tidak cara yang sangat bagus untuk menggambarkan warna. Sebagai contoh,
bagaimana Anda bisa mendefinisikan cokelat muda menggunakan RGB? Seperti yang
akan kita lihat juga dalam sub bab 11, ada beberapa warna yang tidak dapat
diwujudkan dengan RGB model; dalam hal ini mereka membutuhkan nilai negatif dari
satu atau dua komponen RGB. Matlab menangani gambar RGB 24-bit dengan cara
yang sama seperti skala abu-abu. Kita dapat menyimpan nilai warna ke matriks dan
lihat hasilnya:
>> a = imread ('autumn.tif');
>> figure, imshow (a), pixval on
Perhatikan sekarang bahwa nilai-nilai piksel sekarang terdiri dari daftar tiga nilai,
memberikan merah, hijau dan biru komponen warna dari piksel yang diberikan.
Perbedaan penting antara jenis gambar ini dan gambar skala abu - abu dapat dilihat
oleh perintah
>> ukuran (a)
yang mengembalikan tiga nilai: jumlah baris, kolom, dan “Halaman” dari, yang
merupakan tiga dimensi matriks, juga disebut array multidimensi. Matlab dapat
menangani array dari berbagai dimensi, dan sebuah contoh. Kita dapat menganggap
sebagai tumpukan tiga matriks, masing – masing ukuran sama.
Untuk mendapatkan nilai RGB apa pun di lokasi tertentu, kami menggunakan metode
pengindeksan yang sama di atas.
Sebagai contoh
>> a (100.200,2)
mengembalikan nilai warna kedua (hijau) pada piksel di baris 100 dan kolom 200. Jika
kita menginginkan semua nilai warna pada titik itu, bisa kita gunakan
>> a (100.200,1: 3)
Namun, Matlab memungkinkan jalan pintas yang nyaman untuk mendaftar semua nilai
di sepanjang dimensi tertentu; hanya menggunakan titik dua sendiri:
>> a (100.200, :)
Fungsi yang berguna untuk mendapatkan nilai RGB adalah impixel; perintah
>> impixel (a, 200.100)
mengembalikan nilai-nilai merah, hijau, dan biru dari piksel pada kolom 200, baris
100. Perhatikan urutannya pengindeksan adalah sama dengan yang disediakan oleh
perintah pada pixval. Ini berlawanan dengan baris, urutan kolom untuk pengindeksan
matriks. Perintah ini juga berlaku untuk gambar skala abu-abu:
>> impixel (g, 100.200)
akan mengembalikan tiga nilai, tetapi karena g adalah matriks dua dimensi tunggal,
ketiga nilai tersebut akan menjadi sama.

1.13 Gambar berwarna yang diindeks


Perintah
>> figure, imshow ('emu.tif'), pixval aktif
menghasilkan gambar warna emu yang bagus. Namun, nilai-nilai piksel, bukannya tiga
bilangan bulat seperti untuk gambar RGB di atas, apakah ada tiga fraksi antara 0 dan 1.
Apa yang terjadi di sini.
Jika kami mencoba menyimpan ke matriks terlebih dahulu dan kemudian menampilkan
hasilnya:
>> em = imread ('emu.tif');
>> figure, imshow (em), pixval on
kami memperoleh gambar gelap, hampir tidak dapat dibedakan, dengan nilai abu-abu
integer tunggal, menunjukkan em itu sedang ditafsirkan sebagai gambar skala abu-abu
tunggal.
Sebenarnya gambar emu.tif adalah contoh dari gambar yang diindeks, terdiri dari dua
matriks: gambar warna, dan indeks ke peta warna. Menetapkan gambar ke satu matriks
hanya mengambil Indeks; kita perlu mendapatkan peta warna juga:
>> [em, emap] = imread ('emu.tif');
>> figure, imshow (em, emap), pixval on
Matlab menyimpan nilai RGB dari gambar yang diindeks sebagai nilai tipe ganda,
dengan nilai di antaranya 0 dan 1.
Informasi tentang gambar Anda
Banyak informasi dapat diperoleh dengan fungsi imfinfo. Sebagai contoh, misalkan
kita ambil emu.tif gambar yang diindeks dari atas.
Banyak dari informasi ini tidak berguna bagi kami; tapi kita bisa melihat ukuran
gambar dalam piksel, ukuran dari file (dalam byte), jumlah bit per piksel (ini diberikan
oleh BitDepth), dan jenis warna (dalam hal ini diindeks).
Sebagai perbandingan, mari kita lihat output dari le color yang sebenarnya (hanya
menampilkan beberapa baris pertama):

Sekarang kita akan menguji fungsi ini pada gambar biner:


Apa yang terjadi disini? Kami memiliki gambar biner, namun jenis warna diberikan
sebagai skala abu-abu. Faktanya adalah bahwa Matlab tidak membedakan antara
gambar skala abu-abu dan biner: gambar biner hanyalah kasus khusus dari gambar
skala abu-abu yang hanya memiliki dua intensitas. Namun, kita bisa melihatnya text.tif
adalah gambar biner karena jumlah bit per piksel hanya satu.
1.14 Jenis dan konversi data
Elemen dalam matriks Matlab mungkin memiliki sejumlah tipe data numerik yang
berbeda; yang paling umum tercantum dalam tabel 1.1. Ada yang lain, tetapi yang
terdaftar akan cukup untuk semua pekerjaan kita gambar. Tipe data ini juga berfungsi,
kita dapat mengonversi dari satu tipe ke tipe lainnya. Sebagai contoh:

Tabel 1.1: Jenis data dalam Matlab

Meskipun variabel a dan b memiliki nilai numerik yang sama, mereka memiliki tipe
data yang berbeda. Sebuah Pertimbangan penting (yang kami akan lebih lanjut) adalah
bahwa operasi aritmatika tidak diizinkan dengan tipe data int8, int16, uint8 dan uint16.
Gambar skala abu-abu dapat terdiri dari piksel yang nilainya dari tipe data uint8.
Gambar-gambar ini dengan demikian cukup efisien dalam hal ruang penyimpanan,
karena setiap piksel hanya membutuhkan satu byte. Namun, operasi aritmatika tidak
diizinkan pada tipe data ini; gambar uint8 harus dikonversi ke gandakan sebelum
aritmatika dicoba.
Kami dapat mengkonversi gambar dari satu jenis gambar ke yang lain. Tabel 1.2
mencantumkan semua fungsi Matlab untuk mengkonversi antara jenis gambar yang
berbeda. Perhatikan bahwa fungsi gray2rgb, tidak membuat sebuah

Tabel 1.2: Mengonversi gambar dalam Matlab


gambar berwarna, tetapi gambar yang semua warna pikselnya sama seperti
sebelumnya. Ini dilakukan oleh cukup mereplikasi nilai abu-abu dari setiap piksel: abu-
abu dalam gambar RGB diperoleh dengan persamaan nilai-nilai merah, hijau dan biru.

1.15 Dasar-dasar tampilan gambar


Sebuah gambar dapat direpresentasikan sebagai matriks dari nilai abu-abu dari
pikselnya. Masalahnya di sini adalah tampilkan matriks itu di layar komputer.
Ada banyak faktor yang akan memengaruhi tampilan;
termasuk:
1. pencahayaan sekitar,
2. tipe dan pengaturan monitor,
3. kartu grafis,
4. monitor resolusi.
Gambar yang sama mungkin tampak sangat berbeda ketika dilihat pada monitor CRT
yang tumpul atau pada LCD yang terang monitor. Resolusi juga dapat mempengaruhi
tampilan gambar; resolusi yang lebih tinggi dapat menghasilkan gambar mengambil
lebih sedikit area fisik pada layar, tetapi ini dapat diatasi dengan kehilangan dalam
kedalaman warna: monitor mungkin hanya menampilkan warna 24-bit pada resolusi
rendah. Jika monitor dimandikan dalam cahaya terang (misalnya, sinar matahari),
tampilan gambar mungkin terganggu. Lebih jauh lagi, sistem visual individu itu akan
memengaruhi penampilan gambar: sama gambar, dilihat oleh dua orang, mungkin
tampak memiliki karakteristik yang berbeda untuk setiap orang. Untuk kita maksudnya,
kita akan mengasumsikan bahwa pengaturan komputer seoptimal mungkin, dan
monitor itu mampu secara akurat mereproduksi nilai abu-abu atau warna yang
diperlukan dalam gambar apa pun.
Fungsi Matlab yang sangat mendasar untuk tampilan gambar adalah gambar. Fungsi ini
hanya menampilkan sebuah matriks sebagai gambar. Namun, itu mungkin tidak
memberikan hasil yang sangat baik. Sebagai contoh:
>> c = imread ('cameraman.tif');
>> image (c)
tentu akan menampilkan juru kamera, tetapi mungkin dalam campuran warna yang
aneh, dan dengan beberapa peregangan. Warna-warna aneh datang dari fakta bahwa
perintah gambar menggunakan warna saat ini peta untuk menetapkan warna ke elemen
matriks. Peta warna default disebut jet, dan terdiri dari 64 warna yang sangat cerah,
yang tidak sesuai untuk tampilan gambar skala abu-abu.
Untuk menampilkan gambar dengan benar, kita perlu menambahkan beberapa perintah
tambahan ke baris gambar.
1. truesize, yang menampilkan satu elemen matriks (dalam hal ini pixel gambar) untuk
setiap layer pixel. Secara lebih formal, kita dapat menggunakan truesize ([256 256]) di
mana komponen vektor memberi jumlah piksel layar secara vertikal dan horizontal
untuk digunakan dalam tampilan. Jika vektornya adalah tidak ditentukan, standar untuk
ukuran gambar.
2. sumbu mati yang mematikan o? pelabelan sumbu,
3. colormap (abu-abu (247)), yang menyesuaikan peta warna gambar untuk
menggunakan nuansa abu-abu saja. Kita dapat menemukan jumlah tingkat abu - abu
yang digunakan oleh gambar juru kamera dengan
>> size (unique (c))
ans =
247 1
Karena gambar juru kamera dengan demikian menggunakan 247 tingkat abu-abu yang
berbeda, kita hanya perlu jumlah itu abu-abu di peta warna. Dengan demikian, perintah
lengkap untuk melihat gambar ini adalah
>> image (c), truesize, axis off, colormap (gray (247))
Kita dapat menyesuaikan peta warna untuk menggunakan lebih sedikit atau lebih
banyak warna; Namun ini bisa memiliki dramatis efek pada hasilnya. Perintah
>> image (c), truesize, axis off, colormap (gray (512))
akan menghasilkan gambar yang gelap. Ini terjadi karena hanya 247 elemen pertama
dari peta warna yang akan digunakan oleh gambar untuk tampilan, dan ini semua akan
berada di bagian pertama dari peta warna; jadi semuanya abu-abu gelap. Di samping
itu,
>> image (c), truesize, axis off, colormap (gray (128))
akan menghasilkan gambar yang sangat terang, karena setiap piksel dengan tingkat
abu-abu lebih tinggi dari 128 hanya akan memilih nilai abu-abu tertinggi (yang putih)
dari peta warna. Perintah gambar bekerja dengan baik untuk gambar berwarna yang
diindeks, selama kita ingat untuk menggunakannya Imread untuk mengambil peta
warna juga:
>> [x, peta] = imread ('cat.tif');
>> gambar (x), truesize, axis off, colormap (peta)
Untuk gambar warna yang sebenarnya, data gambar akan dibaca (oleh imread) sebagai
array tiga dimensi. Dalam kasus seperti itu, gambar akan mengabaikan peta warna saat
ini, dan menetapkan warna untuk tampilan berbasis pada nilai-nilai dalam array. Begitu
>> t = imread ('twins.tif');
>> image (t), truesize, axis off
akan menghasilkan gambar kembar yang benar.
Secara umum fungsi gambar dapat digunakan untuk menampilkan gambar atau matriks
apa pun. Namun, ada perintah yang lebih nyaman, dan melakukan sebagian besar
pekerjaan pemetaan warna untuk kita; kita diskusikan ini di bagian selanjutnya.

1.16 Fungsi imshow


Gambar skala abu-abu
Kita telah melihat bahwa jika x adalah matriks bertipe uint8, maka perintahnya
imshow (x)
akan menampilkan x sebagai gambar. Ini masuk akal, karena tipe data uint8 membatasi
nilai menjadi bilangan bulat antara 0 dan 255. Namun, tidak semua matriks gambar
datang dengan sangat baik dalam hal ini tipe data, dan banyak perintah pemrosesan
gambar Matlab menghasilkan matriks keluaran yang berasal dari ketik ganda. Kami
memiliki dua pilihan dengan matriks jenis ini:
1. konversikan ke ketik uint8 dan kemudian tampilkan,
2. tampilkan matriks secara langsung.
Opsi kedua dimungkinkan karena imshow akan menampilkan matriks tipe ganda
sebagai skala abu-abu
gambar selama elemen matriks antara 0 dan 1. Misalkan kita mengambil gambar dan
mengonversi
itu untuk mengetik ganda:
>> c = imread ('caribou.tif');
>> cd = ganda (c);
>> imshow (c), figure, imshow (cd)
Hasilnya ditunjukkan pada Gambar 1.24.

(a) Gambar asli (b) Setelah konversi untuk mengetik ganda


Gambar 1.24: Upaya konversi tipe data
Namun, seperti yang Anda lihat, g angka 1,24 (b) sama sekali tidak seperti gambar
aslinya! Ini adalah karena untuk matriks tipe ganda, fungsi imshow mengharapkan nilai
antara 0 dan 1, di mana 0 ditampilkan sebagai hitam, dan 1 ditampilkan sebagai putih.
Nilai v dengan 0<v<1 ditampilkan sebagai skala abu-abu [255v]. Sebaliknya, nilai
yang lebih besar dari 1 akan ditampilkan sebagai 1 (putih) dan nilai lebih kecil dari 0
akan ditampilkan sebagai nol (hitam). Pada gambar karibu, setiap piksel memiliki nilai
lebih dari atau sama dengan 1 (sebenarnya nilai minimum adalah 21), sehingga setiap
piksel akan ditampilkan sebagai putih. Untuk menampilkan cd matriks, kita perlu skala
ke kisaran 0-1. Ini mudah dilakukan hanya dengan membagi semua nilai oleh 255:
>> imshow (cd / 255)
dan hasilnya akan menjadi gambar karibu seperti yang ditunjukkan pada gambar g.
1.24 (a).
Kita dapat memvariasikan tampilan dengan mengubah skala matriks. Hasil dari
perintah:
>> imshow (cd / 512)
>> imshow (cd / 128)
ditunjukkan dalam Gambar 1.25.
Dibagi dengan 512 menggelapkan gambar, karena semua nilai matriks sekarang antara
0 dan 0,5, sehingga Pixel paling terang dalam gambar adalah abu-abu pertengahan.
Membagi dengan 128 berarti kisarannya adalah 0-2, dan semuanya piksel dalam
rentang 1-2 akan ditampilkan sebagai putih. Dengan demikian gambar memiliki
eksposur berlebihan, pudar penampilan.

(a) Matriks cd dibagi dengan 512 (b) Matriks cd dibagi dengan 128
Gambar 1.25: Penskalaan dengan membagi matriks gambar dengan skalar
Tampilan hasil dari perintah yang outputnya adalah matriks tipe ganda dapat sangat
dipengaruhi oleh pilihan faktor penskalaan yang bagus.
Kita dapat mengonversi gambar asli menjadi dua kali lipat dengan lebih baik
menggunakan fungsi im2double. Ini menerapkan penskalaan yang benar sehingga nilai
output antara 0 dan 1. Jadi perintah
>> cd = im2double (c);
>> imshow (cd)
akan menghasilkan gambar yang benar. Penting untuk membuat perbedaan antara dua
fungsi double dan im2double: double mengubah tipe data tetapi tidak mengubah nilai
numerik; im2double mengubah tipe data numerik dan nilainya. Pengecualian tentu saja
adalah jika gambar asli adalah tipe double, dalam hal ini im2double tidak melakukan
apa-apa. Meskipun perintah ganda tidak banyak digunakan untuk tampilan gambar
langsung, ini bisa sangat berguna untuk aritmatika gambar. Kita telah melihat contoh-
contoh di atas dengan penskalaan.
Sesuai dengan fungsi ganda dan im2double adalah fungsi uint8 dan im2uint8. Jika kita
mengambil CD gambar dari tipe ganda, diskalakan dengan benar sehingga semua
elemen berada di antara 0 dan 1, kita dapat mengonversinya kembali menjadi gambar
tipe uint8 dengan dua cara:
>> c2 = uint8 (255 * cd);
>> c3 = im2uint8 (cd);
Penggunaan im2uint8 lebih disukai; dibutuhkan tipe data lain sebagai input, dan selalu
mengembalikan hasil yang benar.
Gambar biner
Ingatlah bahwa gambar biner hanya akan memiliki dua nilai: 0 dan 1. Matlab tidak
memiliki biner tipe data seperti itu, tetapi memang memiliki logika flag, di mana nilai-
nilai uint8 sebagai 0 dan 1 dapat diartikan sebagai data logis. Logika flag akan
ditentukan oleh penggunaan operasi relasional seperti as==, <or> atau operasi lain
yang memberikan jawaban ya / tidak. Sebagai contoh, misalkan kita mengambil karibu
matriks dan buat matriks baru dengan
>> cl = c> 120;
(kita akan melihat lebih banyak dari jenis operasi ini di bab 2.) Jika sekarang kita
periksa semua variabel kita dengan siapa, output akan termasuk baris:
cl 256x256 65536 array uint8 (logis)
Ini artinya perintah
>> imshow (cl)
akan menampilkan matriks sebagai gambar biner; hasilnya diperlihatkan dalam gambar
1,26.

(a) Gambar karibu berubah biner (b) Setelah konversi untuk mengetik uint8
Gambar 1.26: Membuat biner gambar
Misalkan kita menghapus logical flag dari cl; ini dapat dilakukan dengan perintah
sederhana:
>> cl = + cl;
Sekarang output dari itu akan mencakup baris:
cl 256x256 65536 array uint8
Jika sekarang kita mencoba untuk menampilkan matriks ini dengan imshow, kita
mendapatkan hasil yang ditunjukkan pada gambar 1,26 (b). gambar yang sangat
mengecewakan! Tapi ini yang diharapkan; dalam matriks tipe uint8, putih adalah 255,
0 adalah hitam, dan 1 adalah abu-abu yang sangat gelap? Indistingu
dapat berasal dari hitam. Untuk kembali ke gambar yang dapat dilihat, kita bisa
mengaktifkan kembali ag logis, dan melihat hasil:
>> imshow (logis (cl))
atau cukup konversi untuk mengetik ganda:
>> imshow (dobel (cl))
Kedua perintah ini akan menghasilkan gambar yang terlihat pada gambar 1.26.
1.17 Bit Plane
Gambar skala abu-abu dapat diubah menjadi urutan gambar biner dengan memecahnya
menjadi pesawat bit mereka. Jika kita menganggap nilai abu-abu dari setiap piksel
gambar 8-bit sebagai kata biner 8-bit, maka bidang bit ke-0 terdiri dari bit terakhir dari
setiap nilai abu-abu. Karena bit ini memiliki efek paling kecil dalam hal besarnya nilai,
itu disebut bit paling tidak signifikan, dan terdiri dari bidang dari bit-bit itu bit pesawat
paling signifikan? Demikian pula bidang bit 7 terdiri dari bit pertama di setiap nilai. Bit
ini memiliki efek terbesar dalam hal besarnya nilai, demikian sebutannya bit yang
paling signifikan, dan bidang yang terdiri dari bit-bit itu bidang bit yang paling
signifikan.
Jika kita mengambil gambar skala abu-abu, kita mulai dengan membuatnya menjadi
matriks tipe ganda; ini artinya kita bisa melakukan aritmatika pada nilai-nilai.
>> c = imread ('cameraman.tif');
>> cd = double (c);
Kami sekarang mengisolasi bidang bit dengan hanya membagi cd matriks dengan
kekuatan 2 berturut-turut, melempar pergi sisa, dan melihat apakah bit? Nal adalah 0
atau 1. Kita dapat melakukan ini dengan fungsi mod.
>> c0 = mod (cd, 2);
>> c1 = mod (floor (cd / 2), 2);
>> c2 = mod (floor (cd / 4), 2);
>> c3 = mod (floor (cd / 8), 2);
>> c4 = mod (floor (cd / 16), 2);
>> c5 = mod (floor (cd / 32), 2);
>> c6 = mod (floor (cd / 64), 2);
>> c7 = mod (floor (cd / 128), 2);
Ini semua ditunjukkan pada Gambar 1.27. Perhatikan bahwa bidang bit yang paling
tidak signifikan, c0, adalah untuk semua maksud dan tujuan array acak, dan bahwa
ketika nilai indeks dari bidang bit meningkat, lebih banyak gambar muncul. Pesawat bit
yang paling signifikan, c7, sebenarnya adalah ambang batas gambar pada level 127:
>> ct = c> 127;
>> semua (c7 (:) == ct (:))
ans =
1
Kami akan membahas ambang batas dalam bab 7.
Kami dapat memulihkan dan menampilkan gambar asli dengan
>> cc = 2 * (2 * (2 * (2 * (2 * (2 * (2 * c7 + c6) + c5) + c4) + c3) + c2) + c1) + c1) +
c0;
>> imshow (uint8 (cc))

1.18 Resolusi Spasial


Resolusi spasial adalah kepadatan piksel di atas gambar: semakin besar resolusi spasial,
semakin banyak piksel digunakan untuk menampilkan gambar. Kita dapat
bereksperimen dengan resolusi spasial dengan Matlab

Gambar 1.27: Bit plane dari gambar skala abu-abu 8-bit


fungsi imresize. Misalkan kita punya 256x256 Gambar skala abu-abu 8-bit disimpan ke
matriks x. Lalu perintahnya
imresize (x, 1/2);
akan membagi dua ukuran gambar. Ini melakukan ini dengan menghilangkan setiap
baris lain dan setiap kolom lainnya, sehingga hanya menyisakan elemen matriks yang
indeks baris dan kolomnya genap:

...
Jika kita menerapkan imresize ke hasil dengan parameter 2 daripada 1/2, semua piksel
diulang untuk menghasilkan gambar dengan ukuran yang sama seperti aslinya, tetapi
dengan setengah resolusi di setiap arah:

Resolusi efektif dari gambar baru ini hanya 128x128. Kita dapat melakukan semua ini
dalam satu baris:
x2 = imresize (imresize (x, 1/2), 2);
Dengan mengubah parameter imresize, kita dapat mengubah resolusi gambar menjadi
efektif jumlah yang lebih kecil:

Untuk melihat efek dari perintah ini, misalkan kita menerapkannya pada gambar
newborn.tif:
x = imread ('newborn.tif');
Efek peningkatan blok atau pikselisasi menjadi sangat jelas ketika resolusinya
menurun;
bahkan pada 128 x 128 detail resolusi, seperti tepi jari-jari bayi, kurang jelas, dan pada
64 x 64 semua tepi sekarang cukup kuning. Di 32 x 32 gambar hampir tidak dikenali,
dan pada 16 x 16 dan 8 x 8 gambar menjadi tidak bisa dikenali.
(a) Gambar asli (b) gambar pada 128 x 128 resolution
Gambar 1.28: Mengurangi resolusi gambar

Gambar 1.29: Lebih lanjut mengurangi resolusi gambar

Gambar 1.30: Semakin mengurangi resolusi suatu gambar

Anda mungkin juga menyukai