Category Archives: Kuliah
Pengolahan Citra (Tugas 4)
Morphological Image Processing
Morphologi adalah teknik pengolahan citra digital dengan menggunakan bentuk (shape) sebagai pedoman dalam pengolahan. Nilai dari setiap pixel dalam citra digital hasil diperoleh melalui proses perbandingan antara pixel yang bersesuaian pada citra digital masukan dengan pixel tetangganya. Operasi morphologi bergantung pada urutan kemunculan dari pixel, tidak memperhatikan nilai numeric dari pixel sehingga teknik morphologi sesuai apabila digunakan untuk melakukan pengolahan binary image dan grayscale image.
Dengan mengatur atau memilih ukuran dan bentuk dari matrik kernel (structuring element) yang digunakan maka kita dapat mengatur sensitivitas operasi morphologi terhadap bentuk tertentu (spesifik) pada citra digital masukan. Operasi morphologi standar yang dilakukan adalah proses erosi dan dilatasi. Dilatasi adalah proses penambahan pixel pada batas dari suatu objek pada citra digital masukan, sedangkan erosi adalah proses pemindahan/pengurangan pixel pada batas dari suatu objek. Jumlah pixel yang ditambahkan atau yang dihilangkan dari batas objek pada citra digital masukan tergantung pada ukuran dan bentuk dari structuring element yang digunakan.
Beberapa operasi pada Morfologi:
Original Image
Structuring Element:
1. Dilasi
Dilasi adalah operasi morphologi yang akan menambahkan pixel pada batas antar objek dalam suatu citra digital. Atau secara rinci Dilasi merupakan suatu proses menambahkan piksel pada batasan dari objek dalam suatu image sehingga nantinya apabila dilakukan operasi ini maka image hasilnya lebih besar ukurannya dibandingkan dengan image aslinya.
Contoh:
Di bawah ini merupakan hasil image setelah dilakukan proses Dilasi dari Original Image dengan Stucturing Element yang telah ditentukan di atas. Warna hijau merupakan pixel tambahan setelah dilakukan Dilasi
2. Erosi
Erosi merupakan kebalikkan dari Dilasi. Proses ini akan membuat ukuran sebuah citra menjadi lebih kecil. Berbeda dengan dilatasi, apabila erosi dilakukan maka yang dikerjakan adalah memindahkan piksel pada batasan-batasan objek yang akan di erosi. Jumlah dari pikselyang ditambah atau dihilangkan bergantung pada ukuran dan bentuk dari structuring element yang digunakan untuk memproses image tersebut.
Contoh :
Di bawah ini merupakan hasil image setelah dilakukan proses Erosi dari Original Image dengan Stucturing Element yang telah ditentukan di atas. Warna hijau merupakan pixel dihilangkan setelah dilakukan proses Erosi, sehingga pixel hasilnya hanya yang berwarna hitam.
3. Opening
Opening merupakan kombinasi proses dimana suatu citra digital dikenai operasi erosi dilanjutkan dengan dilasi. Operasi opening pada citra mempunyai efek memperhalus batas-batas objek, memisahkan objek-objek yang sebelumnya bergandengan, dan menghilangkan objek-objek yang lebih kecil daripada ukuran structuring.
Contoh:
Di bawah ini merupakan hasil image setelah dilakukan proses Opening dari Original Image dengan Stucturing Element yang telah ditentukan di atas. Proses yang dilakukan untuk mendapatkan opening adalah dengan cara melakukan operasi erosi, lalu hasil erosi tersebut di dilasi lagi.
4. Closing
Closing merupakan kombinasi dimana suatu citra dikenai operasi dilasi dilanjutkan dengan erosi. Operasi closing juga cenderung akan memperhalus objek pada citra, namun dengan cara menyambung pecahan-pecahan (fuses narrow breaks and thin gulf) dan menghilangkan lubang-lubang kecil pada objek.
Contoh :
Di bawah ini merupakan hasil image setelah dilakukan proses Closing dari Original Image dengan Stucturing Element yang telah ditentukan di atas. Proses yang dilakukan untuk mendapatkan Closing adalah dengan cara melakukan operasi dilasi, lalu hasil dilasi tersebut dilakukan proses erosi lagi.
5. Thinning
Thinning merupakan suatu proses penting sebelum melakukan proses-proses atau operasi-operasi pengolahan citra, seperti dalam proses pengenalan karakter optic, pengenalan sidik jari, pemrosesan teks, dan lain sebagainya. Tujuannya adalah mengurangi bagian yang tidak perlu (redundant) sehingga dihasilkan informasi yang esensial saja.
6. Shrinking
Shrinking merupakan erosi yang dimodifikasi sehingga piksel single tidak boleh dihapus. Hal ini berguna jika jumlah objek tidak boleh berubah.
7. Pruning
Pruning adalah transformasi yang menghilangkan endpoint dari citra yang telah mengalami proses skeletoning dan memproses sampai stabilitas tercapai. Proses Pruning merupakan proses pemangkasan cabang (branches) yang tidak diperlukan. Cabang yang tidak diperlukan biasanya muncul sebagai hasil dari Morphological Skeleton.
8. Skeletonizing
Skeleton adalah kerangka (atau sumbu medial) yang merepresentasikan sebuah bentuk atau citra biner, dihitung dengan menggunakan operator morfologi. Proses skeletoning dapat didefinisikan sebagai gabungan dari erosi dan opening.
9. Thickening
Komputer dan Masyarakat (Paper UTS)
PAPER KOMPUTER DAN MASYARAKAT
“Penerapan Hak Kekayaan Intelektual pada bidang Informatika di Indonesia”
NPM : 0609U068
NAMA : Mochamad Yagi
Paper tersebut membahas tentang HAKI pada bidang informatika di Indonesia. Untuk file nya dapat di download pada link di bawah.
Pengolahan Citra (Tugas 2 cont.)
KONVOLUSI
Perhitungan Konvolusi dengan MATLAB.
%==================inisialisasi matriks ========================
x=input (‘masukan banyak baris’);
y=input (‘masukan banyak kolom’);
for i=1:x
for j=1:y
im(i,j)=input(‘masukan nilai baris’);
end
end
%============ inisialisasi input operasi =================
choice =input(‘type 1 for correlation and 2 for convolution’);
window = input(‘enter the window size’);
if choice==1
for i=1:window*window
w(i)=input(‘enter the window value rowvise’);
end
end
if choice==2
for i=1:window*window
w(window*window-i+1)=input(‘input the window value rowvise’);
end
end
%=================== rumus =======================
[a b] = size(im);
m = a+2*(window-1);
n = b+2*(window-1);
imfull =zeros(m,n);
imout=zeros(m,n);
imfinal=zeros(a,b);
for i=1:m
for j=1:n
if (i>=window && i<=m-window+1 && j>=window && j<=n-window+1);
imfull(i,j)=im(i-window+1, j-window+1);
end
end
end
for k=1: m-window+1
for l=1:n-window+1
count=1;
isum =0;
for i=k:k+window-1
for j=1:1+window-1
isum=w(count)*imfull(i,j)+isum;
count=count+1;
end
end
imout(k+1,l+1)=isum;
end
end
%================ output ======================
for i=1:a
for j=1:b
imfinal(i,j)=imout(i+window-1,j+window-1);
end
end
im
count =1;
for i=1:window
for j=1:window
win(i,j)=w(count);
count=count+1;
end
end
win
imfinal
Pengolahan Citra (Tugas 2)
KONVOLUSI
Konvolusi (convolution) adalah sebuah proses dimana citra dimanipulasi dengan menggunakan eksternal mask / subwindows untuk menghasilkan citra yang baru. Sedangkan Filtering tanpa menggunakan ekternal mask tetapi hanya menggunakan pixel tetangga untuk mendapatkan pixel yang baru.
Konvolusi sangat banyak dipergunakan dalam pengolahan citra untuk memperhalus (smoothing), menajamkan (crispening), mendeteksi tepi (edge detection), serta efek lainnya. Seperti:
A. Embossing
Embossing yaitu membuat citra seolah diukir pada permukaaan selembar nikel. Koefisien jendela konvolusi memiliki bobot tengah bernilai 0 & jumlah seluruh bobot = 0.
B. Blurring
Blurring (Pengaburan) yaitu filter spasial low-pass yang melenyapkan detil halus dari suatu citra. Pengaburan dicapai melalui konvolusi dari seluruh koefisien mask bernilai sama. Blurring ini perataan nilai pixel-pixel tetangga, makin besar ukuran mask maka makin besar efek pengaburan
C. Sharpening
Sharpening (Penajaman) yaitu memperjelas detil suatu citra(menambah kontras) dengan penjumlahan atas citra tepi dengan citra aslinya maka bagian tepi objek akan terlihat berbeda dengan latarnya, sehingga citra terkesan lebih tajam.
D. Edge Detection
Deteksi tepi yaitu proses menentukan lokasi titik-titik yang merupakan tepi objek.
Berikut ini adalah contoh dari implementasi konvolusi dengan menggunakan MATLAB:
gambar=imread(‘konvolusi.jpg’);
mask = [-1 -1 -1; -1 8 -1; -1 -1 -1];
gray=rgb2gray(gambar);
thresh=graythresh(gray);
imbw=im2bw(gray,thresh);
hasil=conv2(double(imbw),mask,’valid’);
imshow(gambar)
figure, imshow(hasil)
Gambar sebelum di konvolusi
Gambar setelah di konvolusi
Untuk perhitungan proses konvolusi secara manual:
kali ini kita akan mencoba menghitung secara manual proses konvolusi dari gambar di atas.
matrik dari gambar asli matrik filter
e = (8*0)+(-1*0)+(-1*0)+(-1*255)+(-1*0)+(-1*255)+(-1*0)+(-1*0)+(-1*255)
e = (0)+(0)+(0)+(-255)+(0)+(-255)+(0)+(0)+(-255)
e = – 765
maka nilai -765 di ubah menjadi -255.
lakukan hingga semua kolom memiliki nilai baru dari hasil konvolusi.
Pengolahan Citra (Tugas 1)
Berikut ini adalah contoh dari dasar-dasar Pengolahan Citra yang bisa dibuat menggunakan MATLAB:
1. Ekstraksi Nilai Pixel Red Green Blue (RBG)
gambar=imread(‘IMG_9415.jpg’); %——–membaca file gambar
red=gambar(:,:,1); %memanggil matriks gambar yang hanya berisi piksel warna merah
green=gambar(:,:,2);% memanggil matriks gambar yang hanya berisi piksel warna merah
blue=gambar(:,:,3); %memanggil matriks gambar yang hanya berisi piksel warna merah
%———-menampilkan gambar———————
imshow(gambar)
imshow(red)
imshow(green)
imshow(blue)
2. Histogram
gambar=imread(‘IMG_9415.jpg’); %——–membaca file gambar
red=gambar(:,:,1); %memanggil matriks gambar yang hanya berisi piksel warna merah
green=gambar(:,:,2);% memanggil matriks gambar yang hanya berisi piksel warna merah
blue=gambar(:,:,3); %memanggil matriks gambar yang hanya berisi piksel warna merah
gray=0.3*red+0.5*green+0.2*blue ;
imhist(red)
imhist(green)
imhist(blue)
imhist(gray)
3. Region Of Interest (ROI)
gambar=imread(‘IMG_9415.jpg’);
I=gambar(:,:,1);
c = [625 685 733 798 816 753 667];
r = [327 282 247 288 221 402 427];
BW = roipoly(I,c,r);
j = roifill(I,c,r);
figure, imshow(gambar)
figure, imshow(I)
figure, imshow(BW)
figure, imshow(j)
4. Konversi Citra ke Biner
gambar=imread(‘IMG_9415.jpg’);
gray=rgb2gray(gambar);
thresh=graythresh(gray);
imbw=im2bw(gray,thresh);
imshow(gambar)
figure, imshow(imbw)
5. Morphological Image Processing
gambar=imread(‘IMG_9415.jpg’);
gray=rgb2gray(gambar);
se = strel(‘ball’,5,5);
dilat=imdilate(gray,se);
imshow(gambar)
figure, imshow(gray)
figure, imshow(dilat)
6. Erosi
gambar=imread(‘IMG_9415.jpg’);
gray=rgb2gray(gambar);
se = strel(‘ball’,5,5);
dilat=imerode(gray,se);
imshow(gambar)
figure, imshow(gray)
figure, imshow(dilat)
7. Konvolusi Image
gambar=imread(‘IMG_9415.jpg’);
mask = [-1 -1 -1; -1 8 -1; -1 -1 -1];
gray=rgb2gray(gambar);
thresh=graythresh(gray);
imbw=im2bw(gray,thresh);
hasil=conv2(double(imbw),mask,’valid’);
imshow(gambar)
figure, imshow(hasil)
8. Deteksi Tepi
I = imread(‘IMG_9415.jpg’);
gray=rgb2gray(I);
BW1 = edge(gray,’prewitt’);
BW2 = edge(gray,’canny’);
BW3 = edge(gray,’sobel’);
BW4 = edge(gray,’roberts’);
imshow(BW1);
figure, imshow(BW2)
figure, imshow(BW3)
figure, imshow(BW4)
9. Image Reconstruction
gambar = imread(‘IMG_9415.jpg’);
[X,map] = rgb2ind(gambar, 128);
I = ind2gray(X,map);
thresh=graythresh(gray);
imbw=im2bw(gray,thresh);
Ifill = imfill(imbw,’holes’);
figure, imshow(imbw);figure, imshow(Ifill)