Anda di halaman 1dari 40

Operasi Dasar Citra

Digital
Jobsheet 1 Pengolahan Citra

Pengolahan Citra Operasi Dasar Citra Digital


JOBSHEET 1 PENGOLAHAN CITRA
OPERASI DASAR CITRA DIGITAL

A. Pokok-Pokok Bahasan
Pokok-pokok bahasan yang dibahas pada jobsheet ini meliputi 6 hal berikut :
1. Sistem pengelihatan manusia dan komputer
2. Sampling dan kuantisasi pada akuisisi citra
3. Jenis-jenis citra yang meliputi citra berwarna, citra berwarna dengan transparansi,
citra grayscale, citra biner, dan citra terindeks.
4. Hubungan antara pixel pada citra: ketetangaan dan jarak antar pixel
5. Operasi aritmatika yang meliputi penambahan, pengurangan, MAX, MIN, inverse
citra.
6. Operasi logika yang meliputi NOT, AND, OR, XOR.

B. Tujuan Pembelajaran
Setelah selesai mempelajari materi pembelajaran den mengerjakan soal pada job
sheet Operasi Dasar Citra Digital ini, mahasiswa diharapkan dapat :
1. Memahami sistem pengelihatan pada manusia dan komputer.
2. Memahami sampling dan kuantisasi pada akuisisi citra
3. Memahami jenis-jenis citra yang meliputi citra berwarna, citra berwarna dengan
transparansi, citra grayscale, citra biner, dan citra terindeks.
4. Memahami hubungan antara pixel pada citra: ketetangaan dan jarak antar pixel
5. Memahami operasi aritmatika yang meliputi penambahan, pengurangan, MAX,
MIN, inverse citra.
6. Memahami operasi logika yang meliputi NOT, AND, OR, XOR.
PRE TEST

1. Berikut ini bukan merupakan tujuan dari computer vision adalah …


a. Untuk melakukan proses otomatis yang mengintegrasikan sejumlah besar proses
untuk persepsi visual.
b. Membuat sebuah keputusan berdasarkan data dari image processing
c. Meniru kinerja human visual, sehingga dapat mengambil sebuah keputusan
berdasarkan hasil interpetasi
d. Melakukan teknik komputasi untuk memperoses atau memodifikasi data citra
e. Membuat keputusan berdasarkan audio yg di terima olehsistem
2. Semakin banyak jumlah pixel pada gambar maka akan semakin tinggi resolusi gambar
tersebut karena…?
a. Karena informasi yang hilang pada pengelompokan intensitas saat sampling
semakin kecil.
b. Karena informasi yang hilang pada pengelompokan intensitas saat sampling
semakin besar.
c. Karena informasi yang timbul pada pengelompokan intensitas saat kuantisasi
semakin kecil.
d. Karena informasi yang timbul pada pengelompokan intensitas saat sampling
semakin besar.
e. Karena informasi yang timbul pada pengelompokan intensitas saat kuantisasi
semakin besar.
3. Citra manakah yang memiliki kedalaman 8 bit dan memiliki ruang penyimpanan yang
lebih kecil?
a. Citra Terindeks
b. Citra Berwarna dengan Transparansi
c. Citra Grayscale
d. Citra Hexadecimal
e. Citra Berwarna Hue
4. Berikut merupakan hubungan antar pixels pada pengolahan citra digital, kecuali…
a. Neighbors of a Pixel
b. Adjacency, Connectivity, Regions, and Boundaries
c. Distance Measures
d. Matrix of Pixels
e. Image Operation on a Pixel Basis
5. Jumlah piksel dalam sebuah citra digital disebut ?
a. Matriks
b. Dot
c. Px
d. Biner
e. Dinamik
MATERI OPERASI DASAR CITRA DIGITAL

A. Sistem Penglihatan Manusia dan Computer


Sistem penglihatan manusia dan komputer berkaitan erat dengan makna dari
komputer vision. Pada hakikatnya, computer vision mencoba meniru
cara kerja sistem visual manusia (human vision). Human vision sesungguhnya
sangat kompleks. Manusia melihat objek dengan indera penglihatan (mata), lalu
citra objek diteruskan ke otak untuk diinterpretasi sehingga manusia mengerti
objek apa yang tampak dalam pandangan matanya. Hasil interpretasi ini mungkin
digunakan untuk pengambilan keputusan (misalnya menghindar kalau melihat
mobil melaju di depan).
Sehingga computer vision merupakan proses otomatis yang mengintegrasikan
sejumlah besar proses untuk persepsi visual, seperti akuisisi citra, pengolahan citra,
klasifikasi, pengenalan (recognition), dan membuat keputusan
Computer vision mencoba meniru cara kerja sistem visual manusia (human vision)
yang sesungguhnya sangat kompleks. Untuk itu, computer vision diharapkan memiliki
kemampuan tingkat tinggi sebagaiman human visual. Kemampuan itu diantaranya
adalah:
a. Object Detection
b. Object Recognition
c. Object Description
d. 3D Inference
Computer vision terdiri dari teknik-teknik untuk mengestimasi ciri-ciri objek
didalam citra, pengukuran ciri yang berkaitan dengan geometri objek, dan
menginterpretasi informasi geometri tersebut. Mungkin berguna bagi anda untuk
mengingat persamaan [JAI95] berikut:

Proses-proses di dalam computer vision dapat dibagi menjadi tiga aktivitas :


a. Memperoleh atau mengakuisisi citra digital.
b. Melakukan teknik komputasi untuk memperoses atau memodifikasi data citra
(operasi-operasi pengolahan citra).
c. Menganalisis dan menginterpretasi citra dan menggunakan hasil pemrosesan
untuk tujuan tertentu, misalnya memandu robot, mengontrol peralatan,
memantau proses manufaktur, dan lain-lain.
[SCH89] mengklasifikasikan proses-proses di dalam computer vision dalam
hirarkhi sebagai berikut :

Dari penjelasan di atas, dapat kita lihat bahwa pengolahan citra dan pengenalan
pola merupakan bagian dari computer vision. Pengolahan citra merupakan proses
awal (preprocessing) pada computer vision, sedangkan pengenalan pola merupakan
proses untuk menginterpretasi citra. Teknik-teknik di dalam pengenalan pola
memainkan peranan penting dalam computer vision untuk mengenali objek.

B. Sampling dan Kuantisasi pada Akuisisi Citra


Citra digital dapat diperolehdari proses digitalisasi. Ada 2 proses digitalisasi, yaitu:
Sampling, dan Kuantisasi

a. Sampling
Citra kontinyu disampling pada elemen grid berbentuk bujur sangkar
▪ Proses pengambilan nilai diskrit koordinat ruang (x,y) dengan melewatkan citra
kontinu melalui grid (celah)
▪ Proses untuk menentukan warna pada piksel tertentu pada citra dari sebuah
gambar yang kontinu.
▪ Proses sampling biasanya dicari warna rata-rata dari gambar analog yang
kemudian dibulatkan.
▪ Proses sampling disebut proses digitalisasi.

x = Dx/ M increment
y = Dy/ N increment

Keterangan :
▪ N = jumlah maksimum pixel dalam satu kolom.
▪ M = jumlah maksimum pixel dalam satu baris.
▪ Dx= lebar gambar ( dalam satuan panjang, mis. inci)
▪ Dy= tinggi gambar (dalam satuan panjang, mis. inci)
Elemen(i,j) dalam matriks menyatakan rata-rata intensitas cahaya pada area
citra yang direpresentasikan oleh pixel.
Resolusi (derajat rincian yang dapat dilihat) citra ditentukan oleh
pembagian gambar menjadi jumlah piksel tertentu. Semakin banyak jumlah
pixel, semakin tinggi resolusi gambar (gambar semakin halus secara visual),
karena informasi yang hilang akibat pengelompokan intensitas saat sampling,
semakin kecil.
b. Kuantisasi
Intensitas kontinyu dikuantisasikan menjadi suatu nilai intensitas
diskret.Kuantisasi membagi skala keabuan (0, L) menjadi G buah level yang
dinyatakan dengan suatu harga bilangan integer, umumnya perpangkatan dari 2,
G = 2m, G : derajat keabuan
m : bilangan bulat positif

Skala keabuan Rentang nilai keabuan Pixel Depth

21=2 nilai 0, 1 1 bit


22 0–3 2 bit
23 0–7 3 bit
28 0 – 255 8 bit

▪ 0 : Nilai derajat keabuan terendah dengan warna hitam.


▪ 1 : Nilai derajat keabuan tertinggi dengan warna putih.
▪ Pixel depth: Jumlah bit untuk merepresentasikan nilai keabuan pixel.

Citra biasanya diasosiasikan dengan pixel depth-nya, Contoh: citra dengan


pixel depth 8-bit disebut citra 8-bit atau citra 256 warna. Citra keabuan pada
umumnya dikuantisasi pada 256 level sehingga membutuhkan 8 bit untuk
representasi setiap pixelnya (G = 256 =28). Citra biner dikuantisasi pada dua level
saja: level 0 & 1, hanya 1 bit untuk representasi setiap pixel.
Catatan : Jumlah level yang dipilih saat kuantisasi mententukan kehalusan
transisi antar nilai intensitas. Contoh: citra cameramen 256 x 256 pixel dengan
perbedaan kuantisasi.
Penyimpanan citra digital hasil sampling menjadi N x M pixel & dikuantisasi
menjadi 2m level keabuan membutuhkan memori sebanyak: N x M x m bit. Maka
dari itu kualitasi citra digital ditentukan oleh N, M & m, semakin tinggi nilainya,
akan semakin bagus kualitasnya (semakin halus) dan mendekati citra analog.
C. Jenis - Jenis Citra
a. Citra Berwarna dan Citra Berwarna dengan Transparansi
Citra berwarna adalah jenis citra yang memiliki tiga channel warna.
Beberapa representasi warna dalam citra jenis ini adalah citra RGB (Red, Green,
dan Blue), HSV (Hue, Saturation, Value), lCbCr (Luma, Chroma blue, Chrome
Red), dan Lab (L* a* b*). Jenis citra berwarna yang paling sering digunakan
adalah jenis RGB.Pada citra RGB, setiap channel memiliki 256 kemungkinan nilai
yang berada pada rentang 0-256.
CMYK adalah singkatan dari Cyan-Magenta-Yellow-blacK dan biasanya
juga sering disebut sebagai warna proses atau empat warna. CMYK adalah sebuah
model warna berbasis pengurangan sebagian gelombang cahaya (substractive color
model) dan yang umum dipergunakan dalam pencetakan berwarna. Jadi untuk
mereproduksi gambar sehingga dapat dicapai hasil yang (relative) sempurna
dibutuhkan sedikitnya 4 Tinta yaitu: Cyan, Magenta, Yellow dan Black. Keempat
tinta tersebut disebut Tinta / Warna Proses. Tinta Proses adalah tinta yang
dipergunakan untuk mereproduksi warna dengan proses teknik cetak tertentu,
seperti offset lithography, rotogravure, letterpress atau sablon. Berbeda dengan
Tinta yang hanya digunakan satu lapisan (single layer), karena tinta yang
digunakan dapat ditumpuk-tumpuk, maka sifat tinta proses harus memenuhi
standard tertentu, seperti spesifikasi warna dan nilai Opacity/Transparency.
RGB adalah singkatan dari Red - Green - Blue adalah model warna
pencahayaan (additive color mode) dipakai untuk input devices seperti scanner
maupun output devices seperti display monitor, warna-warna primernya (Red,
Blue, Green) tergantung pada teknologi alat yang dipakai seperti CCD atau PMT
pada scanner atau digital camera, CRT atau LCD pada display monitor.
Seiring perkembangan teknologi dan desain, muncul fitur baru dalam citra
berwarna, yaitu fitur transparansi dalam citra berwarna. Citra berwarna dengan
transparansi memiliki bagian yang transparan, biasanya pada bagian background.
Umumnya citra jenis ini dibentuk menggunakan komponen RGB dan Alpha (A),
dan dimodelkan ke dalam ruang warna RGBA. Citra jenis ini memiliki 4 channel
warna, mengingat kita memiliki satu channel tambahan untuk Alpha.

b. Citra Grayscale
Citra grayscale adalah citra yang nilai intensitas pikselnya berdasarkan
derajat keabuan.Citra grayscale merupakan citra digital yang hanya memiliki satu
nilai kanal pada setiap pikselnya, artinya nilai dari Red = Green = Blue. Nilai-nilai
tersebut digunakan untuk menunjukkan intensitas warna.Citra yang ditampilkan
dari citra jenis ini terdiri atas warna abu-abu, bervariasi pada warna hitam pada
bagian yang intensitas terlemah dan warna putih pada intensitas terkuat. Citra
grayscale berbeda dengan citra ”hitam-putih”, dimana pada konteks komputer, citra
hitam putih hanya terdiri atas 2 warna saja yaitu ”hitam” dan ”putih” saja. Pada
citra grayscale warna bervariasi antara hitam dan putih, tetapi variasi warna
diantaranya sangat banyak. Citra grayscale seringkali merupakan perhitungan dari
intensitas cahaya pada setiap piksel pada spektrum elektromagnetik single band
Citra grayscale disimpan dalam format 8 bit untuk setiap sample piksel,
yang memungkinkan sebanyak 256 intensitas. Untuk mengubah citra berwarna
yang mempunyai nilai matrik masing-masing R, G dan B menjadi citra grayscale
dengan nilai X, maka konversi dapat dilakukan dengan mengambil rata-rata dari
nilai R, G dan B sehingga dapat dituliskan menjadi:
X = (R+G+B)/3

c. Citra Biner
Citra biner adalah citra dimana piksel-pikselnya hanya memiliki dua buah
nilai derajat keabuan (grayscale) yaitu hitam dan putih. Pixel-pixel (picture
elements) suatu objek akan bernilai 1 sedangkan pixel–pixel latar belakang bernilai
0. Pada waktu menampilkan gambar, 0 adalah putih dan 1 adalah hitam. Jadi, pada
citra biner, latar belakang berwarna putih sedangkan objek berwarna hitam.Citra
biner banyak digunakan dalam kehidupan sehari-hari seperti pada citra logo suatu
instansi yang hanya memiliki warna hitam dan putih, citra hasil pemindaian suatu
objek seperti yang dihasilkan scanner, citra kode batang atau bar code yang sering
terdapat pada kemasan suatu produk, dan lain sebagainya.
Citra biner sering pula dikodekan dalam angka 0 dan 1 tergntung citra itu
sendiri. Gambar berikut akan memperlihatkan kita sebuah citra huruf ‘B’ serta
repreentasi biner dari derajat keabuannya.Meskipun komputer saat ini dapat
memproses citra hitam-putih (greyscale) maupun citra berwarna, namun citra biner
masih tetap dipertahankan keberadaannya. Alasan penggunaan citra biner adalah
karena ia memiliki sejumlah keuntungan sebagai berikut:
1. Kebutuhan memori kecil karena nilai derajat keabuan hanya membutuhkan
representasi 1 bit. Kebutuhan memori untuk citra biner inipun masih dapat
berkurang secara berarti dengan metode pemampatan run-length encoding
(RLE). Metode RLE akan dijelaskan lebih lanjut pada materi pengkodean
citra biner.
2. Waktu pemrosesan lebih cepat dibandingkan dengan citra hitam-putih
karena banyak operasi pada citra biner yang dilakukan sebagai operasi
logika (AND, OR, NOT) ketimbang operasi aritmetika bilangan bulat.

d. Citra Terindeks
Kebanyakan citra warna hanya memiliki sebagian kecil dari 16 juta warna
yang mungkin. Untuk kenyamanan dalam menyimpanan dan penangan berkas file,
citra warna bertipe index mempunyai sebuah peta warna yang terkait indeks warna,
yang hanya menyimpan daftar semua warna yang digunakan pada citra tersebut.
Setiap piksel pada citra warna berindeks mempunyai nilai yang tidak mewakili
warna yang diberikan (seperti pada citra warna RGB), tetapi nilai tersebut hanya
mewakili sebuah indeks warna ,yang mana representasi warna tersebut tersimpan
pada peta warna.

Citra terindeks atau palet merupakan kelas istimewa dari citrawarna.


Perbedaannya dengan citra warna RGB adalah jumlah warna yangdipergunakan
berbeda, jumlah warna citra terindeks lebih sedikit yaitu 256warna sehingga
kedalaman citranya adalah 8 bit. Nilai pikselnyamerupakan indeks yang mengacu
ke tabel warna. Tentu saja kualitas citrawarna terindeks tidak sebagus citra warna
RGB tetapi dalam penyimpananke dalam file membutuhkan ruang penyimpanan
yang lebih kecil.

D. Hubungan Antara Pixel pada Citra


Sebuah citra digital terdiri dari banyak pixel sehingga muncul hubungan-hubungan
antar pixel. Hubungan-hubungan ini memiliki peran penting dalam pengolahan citra
digital. Contohnya untuk menentukan batas-batas suatu objek.
Adapun 4 hubungan dasar antar piksel, yaitu :
1. Neighbors of a Pixel
Neighbors of a Pixel, atau, Tetangga Sebuah Piksel adalah kumpulan piksel
– piksel yang mengelilingi suatu piksel p (x, y) tertentu. Ada beberapa jenis
ketetanggaan antar piksel, yakni :
a. 4-neighbors
4-neighbors biasanya dinotasikan dengan N4(p). Pada jenis ini, sebuah
piksel memiliki 4 piksel tetangga secara horizontal dan vertikal, sehingga
koordinat dari 4 piksel tetangga tersebut dapat dituliskan menjadi :
(x+1, y),
(x, y+1),
(x-1, y),
(x, y-1)

Ilustrasi 4-neighbors :
▪ Pixels

▪ N4(p)

x, y-1
x-1, y x,y x+1, y
x, y+1

b. Diagonal Neighbors
Diagonal Neighbors biasanya dinotasikan dengan ND(p). Pada jenis
ini, piksel memiliki 4 piksel tetangga secara diagonal, dan jika dituliskan
menjadi :
(x-1,y-1),
(x+1, y-1),
(x+1, y+1),
(x-1, y+1)

Ilustrasi Diagonal Neighbors :


▪ Pixels

▪ ND(p)

x-1, y-1 x+1, y-1


x,y
x-1, y+1 x+1, y+1

c. 8-neighbors
8-neighbors merupakan gabungan dari 4-neighbors dan Diagonal
Neighbors dan dinotasikan sebagai N8(p). Jika dituliskan, kedelapan piksel
tetangga tersebut menjadi :
(x-1, y-1),
(x, y-1),
(x+1, y-1),
(x+1, y),
(x+1, y+1),
(x, y+1),
(x-1, y+1),
(x-1, y)

Ilustrasi 8-neighbors :
▪ Pixels

▪ N8(p)

x-1,y-1 x,y-1 x+1,y-1


x-1,y x, y x+1,y
x-1,y+1 x,y+1 x+1,y+1

2. Adjacency, Connectivity, Regions, and Boundaries


a. Adjacency
Misalkan V adalah himpunan nilai gray-level pada sebuah citra,
N4(p) adalah himpunan piksel dari 4-neighbors piksel p, ND(p) adalah
himpunan piksel dari Diagonal neighbors piksel p, dan N 8(p) adalah
himpunan piksel dari 8-neighbors piksel p. Dalam sebuah citra digital
grayscale bisa saja V berisi nilai antara 0 – 255 (256 nilai). Dari sini didapat
3 jenis Adjacency, yakni :
 4-adjacency
Dua buah piksel p dan q yang berada di dalam V dikatakan 4-
adjacency jika q berada di dalam N4(p)
 8-adjacency
Dua buah piksel p dan q yang berada di dalam V dikatakan 8-
adjacency jika q berada di dalam N8(p)
 m-adjacency
Dua buah piksel p dan q yang berada di dalam V dikatakan mix-
adjacency, jika : 1. piksel q berada di dalam N 4(p), atau 2. piksel q berada di
dalam ND(p) dan N4(p) (-) N4(q) tidak memiliki piksel yang nilainya berasal
dari V

b. Connectivity
Dua buah piksel p dan q dikatakan terhubung (connected) apabila
terdapat jalur (path) yang terdiri dari piksel – piksel di dalam himpunan
bagian (subset) S. Untuk setiap piksel p yang berada di dalam S, himpunan
piksel – piksel lain yang terhubung dengannya di dalam S disebut
connected component dari S. jika S hanya memiliki satu buah connected
component, maka S disebut connected set.
c. Regions and Boundaries
Misalkan R adalah subset dari piksel – piksel di dalam sebuah citra.
R dikatakan sebuah Region jika R merupakan connected set. Sedangkan
Boundary (border/ contour) dari sebuah region R adalah himpunan piksel di
dalam region yang memiliki satu atau lebih neighbor yang tidak berada di
dalam region R. Jika R merupakan keseluruhan citra, maka boundary
didefinisikan sebagai baris dan kolom yang pertama dan terakhir dari citra
tersebut.
3. Distance Measures
Untuk piksel p, q, dan z dengan koordinat (x, y), (s, t), dan (v, w),
dimana D adalah distance function atau metric, jika :
a. D(p, q) >= 0 ( D(p, q) = 0 iff p = q )
b. D(p, q) = D(q, p), and
c. D(p, z) <= D(p, q) + D(q, z)

Euclidean Distance antara p dan q adalah :


1 /2
De(p, q) = [ ( x−s )2 + ( y−t )2 ]

D4 distance antara p dan q adalah :


D4(p, q) = |x−s|+| y−t |

D8 distance antara piksel p dan q adalah :


D8(p, q) = max(|x−s| ,| y−t|)

4. Image Operation on a Pixel Basis


Citra digital direpresentasikan ke dalam bentuk matrik untuk dapat diolah
menggunakan komputer. Karena dalam bentuk matriks, maka operasi – operasi
aritmatika dan logika pun dapat diimplementasikan kepada citra digital. Kita
dapat saja “membagi” dua buah citra, meskipun di dalam kenyataan, tidak ada
operasi pembagian untuk matrik.
E. Operasi Aritmatika
Karena citra dijital adalah matriks, maka operasi-operasi aritmetika matriks
juga berlaku pada citra. Operasi matriks yang dapat dilakukan adalah:
1. Penjumlahan atau pengurangan antara dua buah citra A
dan B:
C(x, y) = A(x, y) B(x,y),

2. Perkalian dua buah citra:


C(x, y) = A(x, y) B(x, y),

3. Penjumlahan/pengurangan citra A dengan scalar c:


B(x, y) = A(x, y) c,

4. Perkalian/pembagian citra A dengan sebuah scalar c:


B(x, y) = c A(x,y)
Ditinjau dari aras komputasi, operasi aritmetika termasuk ke dalam operasi
aras titik. Penjelasan masing-masing operasi aritmetika matriks adalah sebagai
berikut.
1. Penjumlahan Dua Buahcitra
Persamaannya:
C(x, y) = A(x, y) +B(x,y) (4.11)

C adalah citra baru yang intensitas setiap pixel-nya adalah jumlah dari
intensitas tiap pixel pada A dan B. Jika hasil penjumlahan intensitas lebih besar
dari 255, maka intensitasnya dibulatkan ke 255. Algoritma penjumlahan dua
buah citra ditunjukkan pada Algoritma 4.4.

void addition(citra A, citra B, citra C, int N, int M)

/* Menjumlahkan dua buah citra A dan B menjadi citra baru, C.


Citra A, B, dan C masing-masing berukuran N M.
*/

{ int i, j, temp;

for (i=0; i<=N-1; i++)


for (j=0; j<=M-1; j++)
{
temp=A[i][j] + B[i][j];
if (temp > 255) C[i][j]=255; else C[i][j]=temp;
}
}

Algoritma 4.4.Penjumlahan dua buah citra

Operasi penjumlahan citra dapat digunakan untuk mengurangi pengaruh


derau (noise) di dalam data, dengan cara merata-ratakan derajat keabuan setiap
pixel dari citra yang sama yang diambil berkali-kali. Misalnya untuk citra yang
sama direkam dua kali, f1 dan f2, lalu dihitung intensitas rata-rata untuk setiap
pixel:
1
{ f (x, y) + f (x, y) }
1 2
2
Hasil operasi mungkin bernilai riil, karena itu semua nilai riil tersebut
perlu dibulatkan ke nilai bulat terdekat, nilai maksimum adalah 255.

2. Pengurangan Dua Buah Citra


Persamaannya:
C(x, y) = A(x, y) –B(x,y) (4.12)

C adalah citra baru yang intensitas setiap pixel-nya adalah selisih antara
intensitas pixel pada A dan B. Ada kemungkinan hasil operasi ini menghasilkan
nilai negatif, oleh karena itu, operasi pengurangan citra perlu melibatkan
operasi clipping.
Contoh aplikasi operasi pengurangan citra adalah untuk memperoleh
suatu objek dari dua buah citra [HEN95]. Citra pertama misalnya foto sebuah
ruangan yang kosong, citra kedua adalah foto ruangan yang sama tetapi ada
orang di dalamnya. Hasil pengurangan citra kedua dengan gambar pertama
menghasilkan citra yang latar belakangnya hitam, sedangkan latar depannya
(objek orang) berwarna putih. Algoritmanya ditunjukkan pada Algoritma 4.5.

void substraction (citra A, citra B, citra C, int N, intM)

/* Mengurangkan dua buah citra A dan B menajdi citra baru, C.


Citra A, B, dan C berukuran N M.
*/
{ int i, j;

for (i=0; i<=N-1; i++)


for (j=0; j<=M-1; j+
+)
{

C[i][j]=A[i][j] - B[i][j];
if (C[i][j] != 0) C[i][j]=255; /* nyatakan objek berwarna putih*/
}
}

Algoritma 4.5. Pengurangan dua buah citra untuk mendapatkan objek di dalamnya.

Pengurangan citra juga dapat digunakan untuk mendeteksi perubahan


yangterjadi selama selang waktu tertentu bila dua buah citra yang diambil
adalah citra dari adegan yang sama. Teknik semacam ini dipakai pada
movingimages.

3. Perkalian Citra
Persamaannya:
C(x, y) = A(x, y)B(x,y) (4.13)
Perkalian citra sering digunakan untuk mengoreksi kenirlanjaran sensor
dengan cara mengalikan matriks citra dengan matrik koreksi. Jadi, dalam hal
ini A adalah citra sedangkan B adalah matriks koreksi. Hasil operasi mungkin
bernilai riil, karena itu semua nilai dibulatkan ke nilai bulat terdekat, nilai
maksimum adalah 255.
Algoritma perkalian citra dengan matriks koreksi ditunjukkan pada
Algoritma 4.3. Kita mengasumsikan di sini ukuran citra dan matriks koreksi
adalah .
Contoh 4.1. [GAL90] Mengalikan citra A dengan matriks koreksi:

          


 
  
1
       2    
    
     
      
    
   
  
  

    

MatrikscitraA MatrikskoreksiB MatrikskeluaranC 

void multiplication(citra A, matriks_riil B, citra C, int N)


/* Mengalikan buah citra A dengan matriks koreksi B menjadi citra C.
Citra A, matriks B, dan hasil perkalian C berukuran N N.
*/
{ int i, j, temp;

for (i=0; i<=N-1; i++)


for (j=0; j<=N-1; j+
+)
{

temp=0;
for (k=0; k<=N-1; k++)
{
temp = temp + A[i][k]*B[k][j];

/* clipping*/

if (temp < 0)
C[i][j] =0;
else

if (temp > 255)


C[i][j]=255;
else
C[i][j]=temp;
}
}
}

Algoritma 4.6. Perkalian citra A dengan matriks koreksi B.

4. Penjumlahan/Pengurangan Citra dengan Skalar

Persamaannya:
B(x, y) = A(x, y)c (4.14)

Penjumlahan citra A dengan skalar c adalah menambah setiap pixel di dalam


citra dengah sebuah skalar c, dan menghasilkan citra baru B yang intensitasnya lebih
terang daripada A. Kenaikan intensitas sama untuk seluruh pixel, yaitu c.
Pengurangan citra A dengan skalar c adalah mengurangkan setiap pixel di
dalam citra dengah sebuah skalar c, dan menghasilkan citra baru B yang intensitasnya
lebih gelap daripada A. Penurunan intensitas sama untuk seluruh pixel, yaitu c.
Contoh operasi penjumlahan/pengurangan citra dengan sebuah skalar adalah operasi
pencerahan citra (lihat pembahasan operasi aras titik).
Baik operasi penjumlahan maupun pengurangan citra dengan sebuah skalar
melibatkan operasi clipping. Algoritma penjumlahan/pengurangan citra dengan
sebuah skalar sama seperti Algoritma 4.3.

5. Perkalian/pembagian Citra dengan Skalar


Persamaannya:
B(x, y) = c A(x, y), dan B(x, y) = A(x, y)/c (4.15)

Perkalian citra A dengan skalar c menghasilkan citra baru B yang intensitasnya


lebih terang daripada A. Kenaikan intensitas setiap pixel sebanding dengan c. Operasi
perkalian citra dengan skalar dipakai untuk kalibrasi kecerahan (callibration of
brightness).
Pembagian citra A dengan skalar c menghasilkan citra baru B yang
intensitasnya lebih gelap daripada A. Penurunan intensitas setiap pixel berbanding
terbalik dengan c. Operasi pembagian citra dengan skalar dipakai untuk normalisasi
kecerahan (normalization of brightness).
Algoritma perkalian/pembagian citra dengan sebuah skalar serupa dengan
Algoritma 4.3, hanya saja operasi + atau – diganti dengan * atau/.

6. Inverse(Negasi):
Tujuan dari penggunaan operasi invers ini adalah untuk membuat citra
negative. Seperti apa citra negative nantinya akan kita coba pada pembuatan
program. Untuk membuat citra menjadi negative dibutuhkan rumus perhitungan yang
diterapkan dalam pemrograman. Berikut ini adalah rumus yang diperlukan

Dari rumus di atas ini yang dimaksud dengan fmaksimum adalah nilai tertinggi
dalam bit warna. Misalnya untuk citra grayscale 8 bit, maka fmaksimumnya adalah
255, untuk citra grayscale 7 bit fmaksimumnya adalah 127

Untuk membuat citra menjadi negative, maka kita bias menggunakan teori dan
rumus di atas untuk diimplementasikan ke dalam program pengolahan citra yang
akan kita buat.
F. Operasi Logika yang Meliputi NOT, AND, OR, XOR.
Operasi bitwise pada pengolahan citra digunakan untuk memanipulasi sebuah
gambar dan juga dapat digunakan untuk mengambil bagian penting dari sebuah gambar.
4 Operasi Bitwise yang paling penting meliputi :

▪ AND
▪ OR
▪ NOT
▪ XOR
Pada operasi bitwise dapat berfungsi untuk membantu penyeleksian gambar
( image masking ). Sehingga pembuatan gambar dapat dilakukan dengan bantuan operasi
bitwise ini.
Catatan : Operasi Bitwise hanya dapat dilakukan / di implementasikan dengan masukan
imput gambar dengan dimensi yg sama.

G.
LATIHAN PRAKTIKUM

1. Membuat matriks representasi dari gambar yang disampling


Suatu gambar yg ukurannya 5 x 5 inci akan dinyatakan dalam matriks ukuran 4 x 5 (4
baris dan 5 kolom) sebagai sebuah citra biner yang hanya mempunyai dua derajat keabuan
saja: 0 (gelap) dan 1 (Terang)

Tiap elemen gambar lebarnya 1 inchi & tingginya 1,25 inchi akan direpresentasikan
dengan suatu nilai yang mewakili rata-rata intensitas cahaya pada area tersebut
▪ Area 1 x 1,25 inci pada sudut kiri atas gambar direpresentasikan oleh (0,0)
▪ Area 1 x 1,25 inci pada sudut kanan bawah gambar direpresentasikan oleh (3,4)
2. Cara mengubah Citra Warna menjadi Gray-scale
a. Buat aplikasi AppWizard seperti pada praktikum 1 dan beri nama project dengan
GrayScale
b. Buat Menu seperti pada praktikum 2 dengan tambahan Test sedangkan submenunya
OpenFile dan GrayScale
c. Untuk mengedit isi program tekan tombol Edit Code atau buka file GrayScaleView.cpp
d. Tambahkan program untuk mengubah citra warna menjadi gray-scale seperti dibawah ini:
////////////////////////////////////////////////////////////////////
/////////
// CGrayScaleView message handlers
void CGrayScaleView::OnTestLoadgambar()
{
// TODO: Add your command handler code here
static char BASED_CODE szFilter[]="Bitmap Files (*.bmp)|
*.bmp||";
CFileDialog m_ldFile(TRUE, "*.bmp", name,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, szFilter);
if(m_ldFile.DoModal()==IDOK)
{
name=m_ldFile.GetPathName();
LoadGambar();
}
}
// Menampilkan gambar hasil dari open file
void CGrayScaleView::LoadGambar(void)
{
CDC* pDC = GetDC();
CDC dcMem;
HBITMAP hBitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(), name,
IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
if(hBitmap)
{
if(m_bmpBitmap.DeleteObject())
m_bmpBitmap.Detach(); m_bmpBitmap.Attach(hBitmap);
}
dcMem.CreateCompatibleDC(pDC);
dcMem.SelectObject(&m_bmpBitmap);
pDC->BitBlt(0,0,250,210,&dcMem,0,0,SRCCOPY); }

// merubah data pixel ke RGB


void WarnaToRGB(long int warna,int *Red, int *Green, int *Blue)
{
*Red = warna & 0x000000FF;
*Green = (warna & 0x0000FF00) >> 8;
*Blue = (warna & 0x00FF0000) >> 16;
}
//merubah RGB ke data pixel
long int RGBToWarna(int Red, int Green, int Blue)
{
return(Red+(Green<<8)+(Blue<<16));
}
void CGrayScaleView::OnTestGrayscale()
{
// TODO: Add your command handler code here long int warna;
int j,k,red,green,blue,gray;
CDC* pDC = GetDC();
CDC dcMem;
dcMem.CreateCompatibleDC(pDC); dcMem.SelectObject(&m_bmpBitmap);
for(j=0;j<210;j++)
for(k=0;k<250;k++)
{
warna=dcMem.GetPixel(k,j);
// merubah data pixel ke RGB WarnaToRGB(warna,&red,&green,&blue);

// mengubah warna menjadi Gray-Scale gray=(red+green+blue)/3;

//merubah RGB ke data pixel warna=RGBToWarna(gray,gray,gray);


dcMem.SetPixel(k,j,warna);
}
pDC->BitBlt(0,0,250,210,&dcMem,0,0,SRCCOPY);
}

3. Menambah header file


a. Buka file GrayScaleView.h
b. Tambahkan program seperti dibawah ini

// Attributes
public:
CGrayScaleDoc* GetDocument();
CString name;
CBitmap m_bmpBitmap;
// Operations
public:
void LoadGambar(void);

4. Cara Menjalankan Program


a. Pilih menu : Build->Execute (!)
b. Pilih menu : Test->OpenFile -> pilih salah satu gambar misalnya gambar.bmp
c. Pilih menu: Test->GrayScale hasilnya seperti gambar dibawah

5. Hitung jarak antara piksel x dengan piksel y jika diketahui x1=3, y1=4, x2=4, y2=3!
Penyelesaian:

6. Mengubah string menjadi bilangan integer.


f = imread('LogoDKIJakarta.png'); asci=uint8(f)

7. Melihat informasi gambar


f = imread(‘buah1.jpg.png'); whos fimfinfo buah1.jpg.png

8. Mencari RGB dari sebuah gambar


input_gambar = input('Input
Gambar: '); gambar= imread
(input_gambar); nilai_red=
gambar(:,:,1);
nilai_green= gambar(:,:,2);
nilai_blue= gambar(:,:,3);
disp (nilai_red)
disp(nilai_green)
disp(nilai_blue)

9. Function Cerah
function hasil = Cerah(citra,input) hasil = citra;
[m,n] = size(citra); for k = 1:m
for l = 1:n
hasil(k,l) = citra(k,l)+input; end
end
subplot(2,2,1);imshow(citra);title('citra asli');
subplot(2,2,2);imshow(hasil);title('hasil citracerah'); end
% Simpan Cerah.m
i = imread('cameraman.tif'); Cerah(i,50);
% Simpan nama file boleh apa saja.
10. Operasi Bitwise
Input Gambar 1:

Input Gambar 2:

a. Bitwise AND operation on Image


Operasi ini digunakan untuk mengahasilkan hasil konjungsi dua gambar.
Nama File : Operasi_AND.py
Penjelasan :

Hasil Output :
b. Bitwise OR operation on image
Operasi ini digunakan untuk mengahasilkan hasil disjunction dari dua bentuk gambar.
Nama File : Operasi_OR.py

Penjelasan:
Hasil Output :

c. Bitwise XOR operation on image :


Pada operasi bitwise ini menampilkan hasil exclusive or pada dua gambar
Nama File : Operasi_XOR.py

Penjelasan

Hasil Output
d. Bitwise NOT operation on image :
Pada operasi bitwise NOT menampilkan hasil inversi gambar

Penjelasan
TUGAS PRAKTIKUM

1. Buatlah Source Code perkalian citra A dengan scalar C yang akan menghasilkan citra baru B
yang intensitasnya lebih terang dari semula. Menggunakan :
B(x,y) = A(x,y) * c

Jawaban :
A = double(imread('cameraman.tif'));
[r c]   = size(A);
    for x = 1 : r
        for y = 1 : c
            B(x,y) = A(x,y) .* 2;
        end
    end
B = clipping(B);
figure, imshow(uint8(B));

Hasil Perkalian :

2. Ubahlah program konversi citra berwarna menjadi citra gray scale di atas dengan mengubah
nilai gray scale dengan
x = 0.5r + 0.2g + 0.3b
x = 0.2r + 0.5g + 0.3b

x = 0.2r + 0.2g + 0.5b

x = 0.5r + 0.5g + 0b

x = 0.5r + 0g + 0.5b

Perhatikan bagaimana perbedaan hasil konversi dengan tiga macam rumus di atas!
3. Jika a=10 dan b=15, hitunglah jarak Euclidean antara a dan b melalui phyton!
Penyelesaian:

4. Diketahui sebuah citra digital dengan ukuran 512 x 512 pixel dan memiliki ukuran pixel
depth sebesar 8 bit. Hitunglah nilai keabuan dan jumlah memori yang dibutuhkan untuk
menyimpan citra digital tersebut !
Penyelesaian :

Diketahui : Dijawab :
m = 8 bit Hitung derajat keabuan dengan rumus : G= 2m
M = 512 G= 28
N = 512 G= 256

Hitung jumlah memori yg dibutuhkan dengan rumus : b = N x M x m


b = 512 x 512 x 8
b = 2097.152 bit
POST TEST

1. Berikut ini merupakan proses yang dilakukan computer vision dalam pemrosesan sebuah
citra adalah …
a. Memperoleh atau mengakuisisi citra digital.
b. Melakukan teknik komputasi untuk memperoses atau memodifikasi data citra
(operasi – operasi pengolahan citra).
c. Menganalisis dan menginterpretasi citra dan menggunakan hasil pemrosesan
untuk tujuan tertentu
d. a,b,dan c semua salah
e. a.b, dan c semua benar
2. Jumlah bit untuk merepresentasikan nilai kebuan pixel disebut ?
a. Pixel bit
b. Pixel value
c. Pixel depth
d. Pixel shallow
e. Gray scale
3. Apa yang membedakan citra warna berwarna dengan citra berwarna dengan transparansi?
a. Citra berwarna dengan transparansi memiliki nilai null pada warna Black
b. Susunan Komponen citra berwarna adalah CMYK
c. Citra berwarna dengan transparansi memiliki komponen Alpha
d. Komponen Citra berwarna dengan transparansi adalah Luma, Chroma blue, Chrome Red
e. Rentang RGB pada Citra berwarna dengan transparasi hanya 0-128
4. Dua buah piksel p dan q yang berada di dalam V dikatakan 4-adjacency jika….
a. p berada di dalam N4(p)
b. q berada di dalam N4(p)
c. s berada di dalam N4(p)
d. p dan q berada di dalam N4(p)
e. p dan s berada di dalam N4(p)
5. Apakah Tujuan dari perkalian/pembagian citra dengan skalar ?
a. Untuk Memperjelas pixel
b. Untuk kalibrasi kecerahan
c. Berfungsi Menyatukan Pixel
d. A dan B benar
e. Semua Salah

Anda mungkin juga menyukai