jbptunikompp gdl janautama 23430 6 modulim g

Upload: raizer-yuna-putis

Post on 30-Oct-2015

163 views

Category:

Documents


1 download

DESCRIPTION

e

TRANSCRIPT

KOMPRESI CITRA GRAY SCALE DENGAN MODIFIKASI

PRAKTIKUM EL4027 PENGOLAHAN CITRA BIOMEDIKA EB7031 PENGOLAHAN CITRA BIOMEDIKA LANJUT MODUL 1 IMAGE ENHANCEMENT Dalam bidang pengolahan citra, istilah citra mengacu pada suatu fungsi intensitas dalam bidang dua dimensi. Pemrosesan citra menggunakan komputer membutuhkan citra digital sebagai masukannya. Oleh karena itu, kita mengenal beberapa macam format citra digital, yang masing-masing memiliki format penyimpanan dan pembacaan data yang berbeda-beda.

Dengan menggunakan toolbox image processing di Matlab, proses pembacaan citra dapat dilakukan dengan mudah, sebagaimana diperlihatkan oleh beberapa contoh berikut: Windows Bitmap (*.bmp) a=imread('taz_ref.bmp');

figure,imshow(a);

Joint Photographic Experts Group (*.jpg) b=imread('oranges.jpg');

figure,imshow(b);

Tagged Image File Format (*.tif)

c=imread('saturn.tif');

figure,imshow(c);

Jumlah warna yang terdapat dalam suatu citra digital berkaitan erat dengan format data digital yang digunakan. Suatu citra 8 bit (misalnya pada format *.bmp 8-bit) dapat memiliki paling banyak 256 jenis warna di dalamnya. Sedangkan suatu citra 24 bit (misalnya pada format *.png 24-bit) memiliki 224 kombinasi data warna yang dapat ditampilkan.

Suatu citra berwarna dapat dinyatakan dalam banyak cara. Salah satu metode yang paling populer adalah dengan menggunakan metode kanal RGB. Dalam format ini, suatu citra berwarna dinyatakan dalam bentuk gabungan dari tiga buah citra monochrome merah, hijau, dan biru yang berukuran sama. Warna dari setiap piksel citra digital bergantung pada kombinasi ketiga nilai intensitas piksel monochrome yang bersesuaian.

Contoh program untuk mengekstraksi citra monochrome pada toolbox image processing di Matlab adalah sebagai berikut: d=imread('flowers.tif'); figure, imshow(d);

dR=d(:,:,1); figure,imshow(dR),title('Kanal Merah');

dG=d(:,:,2); figure,imshow(dG),title('Kanal Hijau');

dB=d(:,:,3); figure,imshow(dB),title('Kanal Biru ');

Teknik image enhancement digunakan untuk meningkatkan kualitas suatu citra digital, baik dalam tujuan untuk menonjolkan suatu ciri tertentu dalam citra tersebut, maupun untuk memperbaiki aspek tampilan. Proses ini biasanya didasarkan pada prosedur yang bersifat eksperimental, subjektif, dan amat bergantung pada tujuan yang hendak dicapai.

1. Operasi Titik Operasi titik dalam image enhancement dilakukan dengan memodifikasi histogram citra masukan agar sesuai dengan karakteristik yang diharapkan. Histogram dari suatu citra adalah grafik yang menunjukkan distribusi frekuensi dari nilai intensitas piksel dalam citra tersebut.

Contoh perintah untuk menampilkan histogram adalah: I=imread('rice.tif');

figure,imshow(I);

figure,imhist(I);

Beberapa teknik image enhancement melalui operasi titik antara lain adalah intensity adjustment (termasuk brightening dan darkening), histogram equalization, dan thresholding. 1.1 Intensity Adjustment Intensity adjusment bekerja dengan cara melakukan pemetaan linear terhadap nilai intensitas pada histogram awal menjadi nilai intensitas pada histogram yang baru.

Perintah umum untuk melakukan pemetaan linear tersebut adalah:

J = imadjust(I,[low_in,high_in),[low_out,high_out])

dimana :

low_in merupakan nilai intensitas yang akan dipetakan sebagai low_out

high_in merupakan nilai intensitas yang akan dipetakan sebagai high_out Contoh: Citra rice.tif di samping memiliki nilai kekontrasan yang rendah. Berdasarkan histogramnya, dapat diketahui bahwa citra ini tidak memiliki piksel dengan intensitas di bawah 40 dan di atas 225. Untuk memperbaikinya, kita dapat memetakan histogram secara linear sehingga diperoleh sebuah citra baru yang memiliki rentang histogram antara 0 hingga 255.

Perintah untuk melakukan intensity adjustment: I=imread('rice.tif');

J=imadjust(I,[0.15 0.9],[0 1]);

figure,imshow(I);

figure,imhist(I);

figure,imshow(J);

figure,imhist(J);

1.2 Histogram Equalization

Teknik histogram equalization bertujuan untuk menghasilkan suatu citra keluaran yang memiliki nilai histogram yang relatif sama.

Contoh perintah untuk melakukan histogram equalization: I=imread('rice.tif');

J=histeq(I);

figure,imshow(I);

figure,imhist(I);

figure,imshow(J); figure,imhist(J);

1.3 Thresholding Thresholding merupakan proses pemisahan piksel-piksel berdasarkan derajat keabuan yang dimilikinya. Piksel yang memiliki derajat keabuan lebih kecil dari nilai batas yang ditentukan akan diberikan nilai 0, sementara piksel yang memiliki derajat keabuan yang lebih besar dari batas akan diubah menjadi bernilai 1

Contoh perintah untuk melakukan thresholding: I=imread('rice.tif');

J=im2bw(I,0.4);

K=im2bw(I,0.5);

figure,imshow(I);

figure,imhist(I);

figure,imshow(J);

figure,imshow(K);

2. Operasi Spasial Operasi spasial dalam pengolahan citra digital dilakukan melalui penggunaan suatu kernel konvolusi 2-dimensi. Beberapa metode image enhancement yang termasuk dalam keluarga ini adalah neighborhood averaging, median filtering, dan high-pass filtering. 2.1 Neighborhood Averaging Pada prinsipnya, filter yang digunakan dalam neighborhood averaging merupakan salah satu jenis low-pass filter, yang bekerja dengan cara mengganti nilai suatu piksel pada citra asal dengan nilai rata-rata dari piksel tersebut dan lingkungan tetangganya.

Contoh perintah untuk melakukan neighborhood averaging dengan kernel berukuran 33: I=imread('eight.tif');

kernel=[1 1 1;1 1 1;1 1 1]/9;

J=uint8(conv2(double(I),kernel,'same'));

figure,imshow(I);

figure,imshow(J);

Salah satu persoalan pada penggunaan neighborhood averaging adalah apabila citra masukan telah terkontaminasi noise, sebagaimana diperlihatkan oleh contoh berikut: I=imread('eight.tif');

IN=imnoise(I,'salt & pepper',0.02);

kernel=[1 1 1;1 1 1;1 1 1]/9;

J=uint8(conv2(double(I),kernel,'same'));

JN=uint8(conv2(double(IN),kernel,'same'));

figure,imshow(I);

figure,imshow(J);

figure,imshow(IN);

figure,imshow(JN);

2.2 Median Filtering Median filter merupakan salah satu jenis low-pass filter, yang bekerja dengan mengganti nilai suatu piksel pada citra asal dengan nilai median dari piksel tersebut dan lingkungan tetangganya. Dibandingkan dengan neighborhood averaging, filter ini lebih tidak sensitif terhadap perbedaan intensitas yang ekstrim.

Contoh perintah untuk melakukan median filtering dengan kernel berukuran 33: I=imread('eight.tif');

IN=imnoise(I,'salt & pepper',0.02);

J=medfilt2(I,[3 3]);

JN=medfilt2(IN,[3 3]);

figure,imshow(I);

figure,imshow(J);

figure,imshow(IN);

figure,imshow(JN);

2.3 High-pass Filtering Sebagaimana pada proses pengolahan sinyal satu dimensi, high-pass filter dua dimensi akan melewatkan komponen citra frekuensi tinggi dan meredam komponen citra frekuensi rendah.

Contoh perintah untuk melakukan high-pass filtering: I=imread('saturn.tif');

hpf1=[ 1 -2 1;-2 5 -2; 1 -2 1];

hpf2=[ 0 -1 0;-1 5 -1; 0 -1 0];

hpf3=[-1 -1 -1;-1 9 -1;-1 -1 -1];

J1=uint8(conv2(double(I),hpf1,'same'));

J2=uint8(conv2(double(I),hpf2,'same'));

J3=uint8(conv2(double(I),hpf3,'same'));

figure,imshow(I);

figure,imshow(J1);

figure,imshow(J2);

figure,imshow(J3);

3. Operasi Transformasi Berbeda dengan beberapa metode yang telah dibahas sebelumnya, proses image enhancement berbasis transformasi citra dilakukan dengan:

a. mentransformasi citra asal ke dalam domain yang sesuai bagi proses enhancement

b. melakukan proses enhancement pada domain tersebut

c. mengembalikan citra ke dalam domain spasial untuk ditampilkan/diproses lebih lanjut

Salah satu metode transformasi yang paling populer dalam aplikasi pengolahan citra digital adalah Fast Fourier Transform (FFT). Transformasi ini memindahkan informasi citra dari domain spasial ke dalam domain frekuensi, yaitu dengan merepresentasikan citra spasial sebagai suatu penjumlahan eksponensial kompleks dari beragam frekuensi, magnituda, dan fasa.

Contoh perintah untuk melakukan low-pass filtering dan high-pass filtering melalui FFT adalah: I=double(imread('cameraman.tif'));

IF=fft2(I);

mask_high=double(imread('maskpojok.bmp'));

mask_low =not(mask_high);

IFH=IF.*mask_high;

IFL=IF.*mask_low;

hasil_high=abs(ifft2(IFH));

hasil_low =abs(ifft2(IFL));

figure,imagesc(I) ,colormap('gray'),colorbar('vert');

figure,imagesc(log(abs(IF )),[0 17]),colormap('hot') ,colorbar('vert');

figure,imagesc(hasil_high) ,colormap('gray'),colorbar('vert');

figure,imagesc(log(abs(IFH)),[0 17]),colormap('hot') ,colorbar('vert');

figure,imagesc(hasil_low ) ,colormap('gray'),colorbar('vert');

figure,imagesc(log(abs(IFL)),[0 17]),colormap('hot') ,colorbar('vert');

Pada contoh program tersebut, proses filtering dilakukan melalui masking terhadap komponen frekuensi yang ditentukan. Agar tercipta karakteristik high-pass filter, maka komponen frekuensi rendah (koefisien frekuensi yang berada pada bagian pojok dari citra hasil FFT) di-masking menggunakan nilai 0. Demikian pula sebaliknya untuk memunculkan sifat low-pass filter, komponen frekuensi tinggi (koefisien frekuensi yang berada pada bagian tengah dari citra hasil FFT) dibuat menjadi 0 melalui perkalian dengan mask low-pass.

4. Tugas 4.1 Operasi TitikJalankan program berikut dan berikan analisis atas hasil yang diperoleh. I=imread('rice.tif');

J=imadjust(I,[0.15 0.9],[1 0]);

figure,imshow(I); figure,imhist(I);

figure,imshow(J); figure,imhist(J);

4.2 Operasi Spasial Jalankan program berikut dan berikan analisis atas hasil yang diperoleh. I=double(imread('saturn.tif'));

kernel=[1 1 1;1 1 1;1 1 1]/9;

J=conv2(I,kernel,'same');

K=I-J;

figure,imagesc(I),colormap('gray'),colorbar('vert');

figure,imagesc(J),colormap('gray'),colorbar('vert');

figure,imagesc(K),colormap('gray'),colorbar('vert');

4.3 Operasi Transformasi Jalankan program berikut dan berikan analisis atas hasil yang diperoleh. I =double(imread('segitiga.bmp')); F =fft2(I);

IF=fliplr(I); FF=fft2(IF);

IR=rot90 (I); FR=fft2(IR);

figure,imagesc(I) ,colormap('gray'),colorbar('vert');

figure,imagesc(log(abs(F ))),colormap('hot') ,colorbar('vert');

figure,imagesc(IF) ,colormap('gray'),colorbar('vert');

figure,imagesc(log(abs(FF))),colormap('hot') ,colorbar('vert');

figure,imagesc(IR) ,colormap('gray'),colorbar('vert');

figure,imagesc(log(abs(FR))),colormap('hot') ,colorbar('vert');

1 Gunakan file segitiga.bmp sebagai citra masukan. Pastikan terlebih dahulu agar file tersebut telah berada di direktori kerja yang digunakan. 4.4 Studi Kasus Image enhancement pada dasarnya merupakan proses yang bersifat subjektif, sehingga parameter keberhasilannya bersifat subjektif pula. Namun demikian, apabila terdapat suatu citra referensi yang merepresentasikan hasil image enhancement yang diinginkan, pengukuran keberhasilan prosedur image enhancement secara kuantitatif dapat dilakukan melalui perhitungan nilai parameter MSE (Mean Squared Error) sebagai berikut:

a. Untuk citra yang terkontaminasi noise berikut (gambar sebelah kiri), lakukanlah prosedur image enhancement sehingga diperoleh hasil yang paling mendekati citra referensi yang bersesuaian (gambar sebelah kanan).

Prosedur image enhancement yang dilakukan dapat merupakan gabungan dari berbagai metode image enhancement yang tersedia.

b. Tuliskan langkah-langkah image enhancement yang memberikan hasil optimum dalam sebuah m-file. Prosedur image enhancement yang optimum adalah langkah-langkah yang menghasilkan keluaran citra dengan nilai MSE paling rendah. Perhitungan nilai MSE antara citra yang telah di-enhance dengan citra referensi dapat dilakukan melalui program hitungmse.m berikut: %HITUNGMSE Fungsi untuk menghitung nilai MSE dari dua buah citra

function NilaiMSE=HitungMSE(Citra,CitraRef);

[tinggi,lebar]=size(Citra);

NilaiSSE=sum(sum((double(Citra)-double(CitraRef)).^2));

NilaiMSE=NilaiSSE/tinggi/lebar;

Dengan menggunakan file hitungmse.m tersebut, perhitungan MSE dapat dilakukan dari command window melalui perintah:

nilai_mse = hitungmse(citra,citra_referensi)

2 Gunakan file taz_noise.bmp sebagai citra yang akan di-enhance, dan file taz_ref.bmp sebagai citra referensi. PRAKTIKUM EL4027 PENGOLAHAN CITRA BIOMEDIKA EB7031 PENGOLAHAN CITRA BIOMEDIKA LANJUT MODUL 2 EDGE DETECTION Penentuan tepian suatu objek dalam citra merupakan salah satu wilayah pengolahan citra digital yang paling awal dan paling banyak diteliti. Proses ini seringkali ditempatkan sebagai langkah pertama dalam aplikasi segmentasi citra, yang bertujuan untuk mengenali objek-objek yang terdapat dalam citra ataupun konteks citra secara keseluruhan.

Deteksi tepi berfungsi untuk mengidentifikasi garis batas (boundary) dari suatu objek yang terdapat pada citra. Tepian dapat dipandang sebagai lokasi piksel dimana terdapat nilai perbedaan intensitas citra secara ekstrem. Sebuah edge detector bekerja dengan cara mengidentifikasi dan menonjolkan lokasi-lokasi piksel yang memiliki karakteristik tersebut.

1. Operator Gradien Pada citra digital f(x,y), turunan berarah sepanjang tepian objek akan bernilai maksimum pada arah normal dari kontur tepian yang bersesuaian. Sifat ini dipergunakan sebagai dasar pemanfaatan operator gradien sebagai edge detector.

Operator gradien citra konvensional melakukan diferensiasi intensitas piksel pada arah baris dan kolom, mengikuti persamaan local intensity variation berikut :

Nilai magnitudo gradien |(x,y)| dari persamaan di atas dapat dinyatakan sebagai berikut:

Operator gradien dapat direpresentasikan oleh dua buah kernel konvolusi Gx dan Gy, yang masing-masing mendefinisikan operasi penghitungan gradien dalam arah sumbu x dan sumbu y yang saling tegak lurus.

Dalam kasus penghitungan gradien dengan persamaan local intensity variation, maka kernel Gx dan Gy dapat dirumuskan seperti berikut:

Berikut adalah contoh fungsi Matlab untuk operasi penghitungan gradien orde satu:

I = double(imread('cameraman.tif'));% Gradien orde satu pada arah horizontal

gx = [-1 1];

Ix = conv2(I,gx,'same');

% Gradien orde satu pada arah vertikal

gy = [-1;1];

Iy = conv2(I,gy,'same'); % Magnitudo gradien

J = sqrt((Ix.^2)+(Iy.^2));% Gambar hasil

figure,imagesc(I ),colormap('gray'),colorbar('vert');

figure,imagesc(Ix),colormap('gray'),colorbar('vert');

figure,imagesc(Iy),colormap('gray'),colorbar('vert');

figure,imagesc(J ),colormap('gray'),colorbar('vert');

Dari operator gradien konvensional di atas, dapat diturunkan berbagai operator gradien berikut: 1.1 Operator Selisih Terpusat Operator selisih terpusat juga dikenal sebagai Centered Difference Edge Detector Mask, dan dinyatakan sebagai kernel:

I = double(imread('cameraman.tif'));% Konvolusi dengan operator selisih terpusat

d1x = [-1 0 1];

d1y = [-1;0;1];

Ix = conv2(I,d1x,'same');

Iy = conv2(I,d1y,'same');

J = sqrt((Ix.^2)+(Iy.^2)); % Gambar Hasil

figure,imagesc(I ),colormap('gray'),colorbar('vert');

figure,imagesc(Ix),colormap('gray'),colorbar('vert');

figure,imagesc(Iy),colormap('gray'),colorbar('vert');

figure,imagesc(J ),colormap('gray'),colorbar('vert');

1.2 Operator Roberts Operator Roberts memiliki ukuran kernel sebesar 22, yang direpresentasikan sebagai:

Contoh perintah menggunakan operator Roberts: I = double(imread('cameraman.tif')); % Konvolusi dengan operator Roberts

robertshor = [0 1; -1 0];

robertsver = [1 0; 0 -1];

Ix = conv2(I,robertshor,'same');

Iy = conv2(I,robertsver,'same');

J = sqrt((Ix.^2)+(Iy.^2));% Gambar Hasil

figure,imagesc(I ),colormap('gray'),colorbar('vert');

figure,imagesc(Ix),colormap('gray'),colorbar('vert');

figure,imagesc(Iy),colormap('gray'),colorbar('vert');

figure,imagesc(J ),colormap('gray'),colorbar('vert');

Contoh perintah menggunakan operator Roberts (matlab toolbox) 1:

I = imread('cameraman.tif');

J = edge(I,'roberts');

figure,imagesc(I),colormap('gray'),colorbar('vert');

figure,imagesc(J),colormap('gray'),colorbar('vert');

1.3 Operator Prewitt

Contoh perintah menggunakan operator Prewitt:

I = double(imread('cameraman.tif'));%Konvolusi dengan operator Prewitt

prewitthor = [-1 0 1; -1 0 1; -1 0 1];

prewittver = [-1 -1 -1; 0 0 0; 1 1 1];

Ix = conv2(I,prewitthor,'same');

Iy = conv2(I,prewittver,'same');

J = sqrt((Ix.^2)+(Iy.^2)); %Gambar Hasil

figure,imagesc(I ),colormap('gray'),colorbar('vert');

figure,imagesc(Ix),colormap('gray'),colorbar('vert');

figure,imagesc(Iy),colormap('gray'),colorbar('vert');

figure,imagesc(J ),colormap('gray'),colorbar('vert');

Contoh perintah menggunakan operator Prewitt (matlab toolbox):

I = imread('cameraman.tif');

J = edge(I,'prewitt');

figure,imagesc(I),colormap('gray'),colorbar('vert');

figure,imagesc(J),colormap('gray'),colorbar('vert');

1 Perintah edge (pada toolbox Matlab) untuk mensimulasikan operator Prewitt, Roberts, Sobel, dan lainnya memiliki konsep dasar yang sama dengan operasi konvolusi kernel setiap operator secara manual. Bedanya, perintah edge menambahkan suatu skema thresholding secara otomatis, sehingga dihasilkan citra keluaran yang bersifat biner (bernilai 0 atau 1). 1.4 Operator Sobel

Contoh perintah menggunakan operator Sobel: I = double(imread('cameraman.tif')); %Konvolusi dengan operator Sobel

sobelhor = [-1 0 1; -2 0 2; -1 0 1];

sobelver = [-1 -2 -1; 0 0 0; 1 2 1];

Ix = conv2(I,sobelhor,'same');

Iy = conv2(I,sobelver,'same');

J = sqrt((Ix.^2)+(Iy.^2)); %Gambar Hasil

figure,imagesc(I ),colormap('gray'),colorbar('vert');

figure,imagesc(Ix),colormap('gray'),colorbar('vert');

figure,imagesc(Iy),colormap('gray'),colorbar('vert');

figure,imagesc(J ),colormap('gray'),colorbar('vert');

Contoh perintah menggunakan operator Sobel (matlab toolbox): I = imread('cameraman.tif');

J = edge(I,'sobel');

figure,imagesc(I),colormap('gray'),colorbar('vert');

figure,imagesc(J),colormap('gray'),colorbar('vert');

1.5 Operator Isotropic

Contoh perintah menggunakan operator isotropic: I = double(imread('cameraman.tif'));%Konvolusi dengan operator isotropic

isohor = [-1 0 1; -sqrt(2) 0 sqrt(2); -1 0 1];

isover = [-1 -sqrt(2) -1; 0 0 0; 1 sqrt(2) 1];

Ix = conv2(I,isohor,'same');

Iy = conv2(I,isover,'same');

J = sqrt((Ix.^2)+(Iy.^2)); %Gambar Hasil

figure,imagesc(I ),colormap('gray'),colorbar('vert');

figure,imagesc(Ix),colormap('gray'),colorbar('vert');

figure,imagesc(Iy),colormap('gray'),colorbar('vert');

figure,imagesc(J ),colormap('gray'),colorbar('vert');

1.6 Operator Compass Operator Compass bekerja menggunakan pola empat arah mata angin:

1.7 Operator Kirsch Operator Kirsch bekerja menggunakan pola delapan arah mata angin:

2. Operator Laplacian Dalam kondisi transisi tepian yang lebih tidak ekstrem, penggunaan operator turunan kedua lebih dianjurkan.

Representasi turunan kedua dalam bentuk kernel operator Laplacian adalah sebagai berikut:

Dengan berbagai macam pembobotan, kernel Laplacian tersebut dapat dimodifikasi menjadi beberapa kernel konvolusi berikut :

Laplacian of Gaussian Turunan kedua memiliki sifat lebih sensitif terhadap noise, selain itu juga menghasilkan double edge. Oleh karena itu, operator Laplacian dalam deteksi tepi pada umumnya tidak dipergunakan secara langsung, namun dikombinasikan dengan suatu kernel Gaussian menjadi sebuah operator Laplacian of Gaussian.

Fungsi transfer dari kernel Laplacian of Gaussian dapat dirumuskan sebagai berikut:

dimana merupakan standar deviasi dari kernel Gaussian.

Contoh perintah untuk mendeteksi tepian dengan menggunakan operator Laplacian of Gaussian (Matlab toolbox) adalah:

I = imread('cameraman.tif');

J = edge(I,'log');

figure,imagesc(I),colormap('gray'),colorbar('vert');

figure,imagesc(J),colormap('gray'),colorbar('vert');

3. Operator Canny Salah satu algoritma deteksi tepi modern adalah deteksi tepi dengan menggunakan metoda Canny. Berikut adalah diagram blok algoritma Canny :

Contoh perintah untuk mendeteksi tepian menggunakan metoda Canny (matlab toolbox) :

I = imread('cameraman.tif');

J = edge(I,'canny');

figure,imagesc(I),colormap('gray'),colorbar('vert');

figure,imagesc(J),colormap('gray'),colorbar('vert');

4. Tugas A. Pada percobaan dengan kernel Sobel, kernel Isotropic, dan kernel Compass, jelaskan mengenai garis abu-abu yang ditemukan pada pinggiran citra hasil konvolusi.

B. Untuk citra cameraman.tif, edge detector manakah yang memberikan hasil terbaik? Berikan analisis mengenai pendapat anda tersebut.

C. Sensitivitas edge detector terhadap noise dapat diukur dengan menggunakan parameter error rate sebagai berikut:

dimana:

nR : jumlah piksel yang dinyatakan sebagai edge pada citra referensi

nN : jumlah piksel yang dinyatakan sebagai edge pada citra noisy Nilai P yang besar menyatakan sensitivitas edge detector yang tinggi terhadap noise. Dalam kasus citra cameraman.tif terkontaminasi oleh noise salt & pepper dengan distribusi 0.02, edge detector manakah yang paling terpengaruh performansinya? Simulasikan dengan Matlab.

%Contoh perhitungan error rate untuk edge detector Sobel

%(kerjakan pula untuk jenis edge detector lain pada Matlab toolbox)

Ia = imread('cameraman.tif');

Ja = edge(Ia,'sobel');

In = imnoise(Ia,'salt & pepper',0.02);

Jn = edge(In,'sobel');

nr = sum(sum(Ja));

nn = sum(sum(Jn));

P = abs(nn-nr)/nr

PRAKTIKUM EL4027 PENGOLAHAN CITRA BIOMEDIKA EB7031 PENGOLAHAN CITRA BIOMEDIKA LANJUT MODUL 3 ANALISIS TEKSTUR Tekstur merupakan karakteristik intrinsik dari suatu citra yang terkait dengan tingkat kekasaran (roughness), granularitas (granulation), dan keteraturan (regularity) susunan struktural piksel. Aspek tekstural dari sebuah citra dapat dimanfaatkan sebagai dasar dari segmentasi, klasifikasi, maupun interpretasi citra.

Tekstur dapat didefinisikan sebagai fungsi dari variasi spasial intensitas piksel (nilai keabuan) dalam citra. Berdasarkan strukturnya, tekstur dapat diklasifikasikan dalam dua golongan :

Makrostruktur

Tekstur makrostruktur memiliki perulangan pola lokal secara periodik pada suatu daerah citra, biasanya terdapat pada pola-pola buatan manusia dan cenderung mudah untuk direpresentasikan secara matematis.

Mikrostruktur

Pada tekstur mikrostruktur, pola-pola lokal dan perulangan tidak terjadi begitu jelas, sehingga tidak mudah untuk memberikan definisi tekstur yang komprehensif.

Contoh gambar berikut ini menunjukkan perbedaan tekstur makrostruktur dan mikrostruktur yang diambil dari album tekstur Brodatz.

Gambar 1 Contoh tekstur visual dari Album Tekstur Brodatz .

Atas: makrostruktur Bawah: mikrostruktur Analisis tekstur bekerja dengan mengamati pola ketetanggaan antar piksel dalam domain spasial. Dua persoalan yang seringkali berkaitan dengan analisis tekstur adalah:

Ekstraksi ciri

Ekstraksi ciri merupakan langkah awal dalam melakukan klasifikasi dan interpretasi citra. Proses ini berkaitan dengan kuantisasi karakteristik citra ke dalam sekelompok nilai ciri yang sesuai. Dalam praktikum ini kita akan mengamati metoda ekstraksi ciri statistik orde pertama dan kedua, serta mengenali performansi masing-masing skema dalam mengenali citra dengan karakteristik tekstural yang berlainan.

Segmentasi citra

Segmentasi citra merupakan proses yang bertujuan untuk memisahkan suatu daerah pada citra dengan daerah lainnya. Berbeda dengan pada citra non-tekstural, segmentasi citra tekstural tidak dapat didasarkan pada intensitas piksel per piksel, tetapi perlu mempertimbangkan perulangan pola dalam suatu wilayah ketetanggaan lokal. Dalam praktikum ini kita akan mencoba menerapkan filter Gabor untuk melakukan segmentasi citra tekstural berdasarkan perulangan pola lokal pada orientasi dan frekuensi tertentu.

1. Ekstraksi Ciri Statistik Analisis tekstur lazim dimanfaatkan sebagai proses antara untuk melakukan klasifikasi dan interpretasi citra. Suatu proses klasifikasi citra berbasis analisis tekstur pada umumnya membutuhkan tahapan ekstraksi ciri, yang dapat terbagi dalam tiga macam metode berikut:

Metode statistik

Metode statistik menggunakan perhitungan statistik distribusi derajat keabuan (histogram) dengan mengukur tingkat kekontrasan, granularitas, dan kekasaran suatu daerah dari hubungan ketetanggaan antar piksel di dalam citra.

Paradigma statistik ini penggunaannya tidak terbatas, sehingga sesuai untuk tekstur-tekstur alami yang tidak terstruktur dari sub pola dan himpunan aturan (mikrostruktur).

Metode spektral

Metode spektral berdasarkan pada fungsi autokorelasi suatu daerah atau power distribution pada domain transformasi Fourier dalam mendeteksi periodisitas tekstur.

Metode struktural

Analisis dengan metode ini menggunakan deskripsi primitif tekstur dan aturan sintaktik. Metode struktural banyak digunakan untuk pola-pola makrostruktur.

Bagian ini akan membahas metode ekstraksi ciri statistik orde pertama dan kedua. Ekstraksi ciri orde pertama dilakukan melalui histogram citra. Ekstraksi ciri statistik orde kedua dilakukan dengan matriks kookurensi, yaitu suatu matriks antara yang merepresentasikan hubungan ketetanggaan antar piksel dalam citra pada berbagai arah orientasi dan jarak spasial.

Gambar 2 Ilustrasi ekstraksi ciri statistik

Kiri : Histogram citra sebagai fungsi probabilitas kemunculan nilai intensitas pada citra

Kanan : Hubungan ketetanggaan antar piksel sebagai fungsi orientasi dan jarak spasial

1.1 Ekstraksi ciri orde pertama Ekstraksi ciri orde pertama merupakan metode pengambilan ciri yang didasarkan pada karakteristik histogram citra. Histogram menunjukkan probabilitas kemunculan nilai derajat keabuan piksel pada suatu citra. Dari nilai-nilai pada histogram yang dihasilkan, dapat dihitung beberapa parameter ciri orde pertama, antara lain adalah mean, skewness, variance, kurtosis, dan entropy.

a. Mean () Menunjukkan ukuran dispersi dari suatu citra

dimana fn merupakan suatu nilai intensitas keabuan, sementara p(fn) menunjukkan nilai histogramnya (probabilitas kemunculan intensitas tersebut pada citra).

b. Variance (2)Menunjukkan variasi elemen pada histogram dari suatu citra

c. Skewness (3) Menunjukkan tingkat kemencengan relatif kurva histogram dari suatu citra

d. Kurtosis (4) Menunjukkan tingkat keruncingan relatif kurva histogram dari suatu citra

e. Entropy (H) Menunjukkan ukuran ketidakaturan bentuk dari suatu citra

Berikut adalah fungsi ciriordesatu yang dipergunakan untuk menghitung ciri orde satu dari citra:

1.2 Ekstraksi ciri orde kedua Pada beberapa kasus, ciri orde pertama tidak lagi dapat digunakan untuk mengenali perbedaan antar citra. Pada kasus seperti ini, kita membutuhkan pengambilan ciri statistik orde dua.

Salah satu teknik untuk memperoleh ciri statistik orde dua adalah dengan menghitung probabilitas hubungan ketetanggaan antara dua piksel pada jarak dan orientasi sudut tertentu. Pendekatan ini bekerja dengan membentuk sebuah matriks kookurensi dari data citra, dilanjutkan dengan menentukan ciri sebagai fungsi dari matriks antara tersebut.

Kookurensi berarti kejadian bersama, yaitu jumlah kejadian satu level nilai piksel bertetangga dengan satu level nilai piksel lain dalam jarak (d) dan orientasi sudut () tertentu. Jarak dinyatakan dalam piksel dan orientasi dinyatakan dalam derajat. Orientasi dibentuk dalam empat arah sudut dengan interval sudut 45, yaitu 0, 45, 90, dan 135. Sedangkan jarak antar piksel biasanya ditetapkan sebesar 1 piksel.

Matriks kookurensi merupakan matriks bujursangkar dengan jumlah elemen sebanyak kuadrat jumlah level intensitas piksel pada citra. Setiap titik (p,q) pada matriks kookurensi berorientasi berisi peluang kejadian piksel bernilai p bertetangga dengan piksel bernilai q pada jarak d serta orientasi dan (180).

Gambar 3 Ilustrasi pembuatan matriks kookurensi

(a) Citra masukan

(b) Nilai intensitas citra masukan

(c) Hasil matriks kookurensi 0

(d) Hasil matriks kookurensi 45

(e) Hasil matriks kookurensi 90

(f) Hasil matriks kookurensi 135

Setelah memperoleh matriks kookurensi tersebut, kita dapat menghitung ciri statistik orde dua yang merepresentasikan citra yang diamati. Haralick et al mengusulkan berbagai jenis ciri tekstural yang dapat diekstraksi dari matriks kookurensi. Dalam modul ini dicontohkan perhitungan 6 ciri statistik orde dua, yaitu Angular Second Moment, Contrast, Correlation, Variance, Inverse Difference Moment, dan Entropy.

a. Angular Second MomentMenunjukkan ukuran sifat homogenitas citra.

dimana p(i,j) merupakan menyatakan nilai pada baris i dan kolom j pada matriks kookurensi. b. ContrastMenunjukkan ukuran penyebaran (momen inersia) elemen-elemen matriks citra. Jika letaknya jauh dari diagonal utama, nilai kekontrasan besar. Secara visual, nilai kekontrasan adalah ukuran variasi antar derajat keabuan suatu daerah citra.

c. CorrelationMenunjukkan ukuran ketergantungan linear derajat keabuan citra sehingga dapat memberikan petunjuk adanya struktur linear dalam citra.

d. Variance Menunjukkan variasi elemen-elemen matriks kookurensi. Citra dengan transisi derajat keabuan kecil akan memiliki variansi yang kecil pula.

e. Inverse Different Moment Menunjukkan kehomogenan citra yang berderajat keabuan sejenis. Citra homogen akan memiliki harga IDM yang besar.

f. Entropy Menunjukkan ukuran ketidakteraturan bentuk. Harga ENT besar untuk citra dengan transisi derajat keabuan merata dan bernilai kecil jika struktur citra tidak teratur (bervariasi).

Berikut adalah fungsi ciriordedua yang dipergunakan untuk menghitung ciri orde dua dari citra:

2. Filter Gabor Kemampuan sistem visual manusia dalam membedakan berbagai tekstur didasarkan atas kapabilitas dalam mengidentifikasikan berbagai frekuensi dan orientasi spasial dari tekstur yang diamati. Filter Gabor merupakan salah satu filter yang mampu mensimulasikan karakteristik sistem visual manusia dalam mengisolasi frekuensi dan orientasi tertentu dari citra. Karakteristik ini membuat filter Gabor sesuai untuk aplikasi pengenalan tekstur dalam computer vision.

Secara spasial, sebuah fungsi Gabor merupakan sinusoida yang dimodulasi oleh fungsi Gauss. Respon impuls sebuah filter Gabor kompleks dua dimensi adalah :

dan dapat digambarkan sebagai berikut:

Gambar 4 Respon impuls filter Gabor dua dimensi. Dalam domain frekuensi spasial, filter Gabor dapat direpresentasikan sebagai berikut:

Dalam domain frekuensi spasial, parameter-parameter filter Gabor dapat digambarkan sebagai:

Gambar 5 Parameter filter Gabor dalam domain frekuensi spasial Tabel 1 Enam parameter filter Gabor

Ada enam parameter yang harus ditetapkan dalam implementasi filter Gabor. Keenam parameter tersebut adalah: F, , x, y, BF, dan B Frekuensi (F) dan orientasi () mendefinisikan lokasi pusat filter. BF dan B menyatakan konstanta lebar pita frekuensi dan jangkauan angular filter. Variabel x berkaitan dengan respon sebesar -6 dB untuk komponen frekuensi spasial.

Variabel y berkaitan dengan respon sebesar -6dB untuk komponen angular.

Posisi (F, ) dan lebar pita (x, y) dari filter Gabor dalam domain frekuensi harus ditetapkan dengan cermat agar dapat menangkap informasi tekstural dengan benar. Frekuensi tengah dari filter kanal harus terletak dekat dengan frekuensi karakteristik tekstur. Setelah mendapatkan ciri Gabor maka dapat dilakukan ekstraksi ciri. Salah satu ciri yang dapat dipilih adalah ciri energi, yang didefinisikan sebagai:

Dalam modul ini digunakan lebar pita frekuensi (BF), dan jarak frekuensi tengah (SF) sebesar satu oktaf, serta lebar pita angular (B) dan jarak angular (S) sebesar 30 dan 45. Pemilihan lebar pita angular sebesar 30 dan 45 adalah karena nilai ini dianggap mendekati karakteristik sistem visual manusia. Berikut adalah fungsi gb dan en yang dipergunakan dalam percobaan filter Gabor ini:

2.1 Percobaan Mencari Frekuensi dan Orientasi Dominan pada Suatu Tekstur Berdasarkan program filter Gabor di atas, lakukan urutan kerja sebagai berikut :

a. Baca file citra straw.tif

b. Lakukan proses filtering terhadap citra tersebut menggunakan filter Gabor. Parameter frekuensi dan orientasi ditentukan sebagai:

c. Tampilan hasil citra yang telah difilterfigure, imshow(G1);

d. Hitung nilai energi citra yang telah difilter

E1 = en(G1); e. Ulangi proses filtering pada beberapa frekuensi dan orientasi yang berbeda.

Ambil kesimpulan berdasarkan besarnya energi dari masing-masing citra keluaran.

2.2 Percobaan Segmentasi Citra Tekstural Berdasarkan program filter Gabor di atas, lakukan urutan kerja sebagai berikut :

a. Baca file citra tex2.tif

b. Analisis tekstur mengunakan filter Gabor

c. Lakukan thresholding dengan nilai threshold = 0.25.

d. Lakukan median filtering sebanyak dua kali

3. Tugas 3.1 Ciri Orde Satu a. Tampilkan histogram citra Taz1.bmp, Taz2.bmp, dan Taz3.bmp. Selanjutnya jalankan fungsi ciriordesatu terhadap masing-masing citra.

b. Lakukan hal yang sama terhadap masing-masing citra Tekstur1.bmp, Tekstur2.bmp, dan Tekstur3.bmp.

c. Berikan analisis mengenai proses yang telah dilakukan.

3.2 Ciri Orde Dua a. Jalankan fungsi ciriordedua terhadap masukan citra Tekstur1.bmp, Tekstur2.bmp, dan Tekstur3.bmp.

b. Berikan analisis mengenai proses yang telah dilakukan.

3.3 Filter Gabor a. Jalankan program mikimos.m berikut. Berikan analisis mengenai proses yang dijalankan.

b. Gantilah baris perintah: X=imread('mikimos1.bmp');

dengan:

X=imread('mikimos2.bmp');Bandingkan hasilnya dengan (a), berikan analisis mengenai hasil yang diperoleh.

c. Gantilah baris perintah:

Y=gb(X,2,3);

dengan:

Y=gb(X,2,6);

Bandingkan hasilnya dengan (a), berikan analisis mengenai hasil yang diperoleh.

PRAKTIKUM EL4027 PENGOLAHAN CITRA BIOMEDIKA EB7031 PENGOLAHAN CITRA BIOMEDIKA LANJUT MODUL 4 IMAGE RECONSTRUCTION 1. Pendahuluan Istilah rekonstruksi citra umum dipergunakan dalam lingkup pencitraan tomografi, yaitu teknik pencitraan yang menghasilkan gambaran potongan lintang suatu objek melalui pengolahan terhadap sinyal proyeksi trans-aksial dari objek tersebut. Sinyal proyeksi trans-aksial diperoleh dengan cara memberikan radiasi terhadap objek dalam berbagai sudut orientasi. Modalitas pencitraan tomografi pada umumnya memiliki sistem mekanik yang mengatur rotasi posisi transduser pemancar radiasi dan transduser pendeteksi sinyal sehingga pengambilan proyeksi objek dapat dilakukan dari berbagai sudut orientasi.

Sinyal proyeksi yang menjadi input dari proses rekonstruksi citra dapat dihasilkan dari 3 macam teknik pencitraan tomografi, yaitu:

Transmission Tomography Pada transmission tomography, sinyal informasi proyeksi diperoleh dari intensitas sinyal radiasi yang ditangkap setelah sinyal menembus objek. Contoh modalitas pencitraan yang temasuk kategori ini adalah CT-Scanner. CT-Scanner mempergunakan radiasi sinar X dalam berbagai orientasi untuk menghasilkan citra irisan lintang objek pencitraan.

Reflection Tomography Teknik tomografi refleksi banyak dipergunakan dalam aplikasi radar. Dalam aplikasi ini, sinyal informasi proyeksi objek merupakan intensitas sinyal refleksi yang dipantulkan oleh permukaan luar objek, misalnya seperti pada aplikasi doppler radar-imaging.

Emission Tomography Tomografi emisi memanfaatkan sinyal informasi berupa intensitas peluruhan radioaktif dari komponen radionuklida yang dimasukkan ke dalam objek. Dalam aplikasi medis, contoh modalitas pencitraan yang menggunakan metode tomografi emisi antara lain adalah PET (Positron Emission Tomography).

2. Rekonstruksi Citra 2 Dimensi dari Sinyal 1 Dimensi Transformasi Radon dan invers transformasi Radon merupakan pendekatan paling langsung terhadap permasalahan proyeksi dan rekonstruksi citra, sehingga teknik ini dipergunakan sebagai teknik dasar dalam rekonstruksi citra 2D dari sinyal-sinyal 1D. 2.1 Transformasi Radon Transformasi Radon merepresentasikan citra sebagai kumpulan sinyal 1D hasil proyeksi citra tersebut pada berbagai sudut orientasi. Transformasi Radon dari suatu citra pada suatu sumbu proyeksi dinyatakan sebagai integral garis dari fungsi representasi citra f(x,y) pada arah yang tegak lurus dengan sumbu proyeksinya. Hasil transformasi Radon dalam domain transformasi dinyatakan sebagai sinyal g(s,), dimana s merupakan jarak titik yang ditransformasikan terhadap titik pusat koordinat citra asal, dan merupakan sudut orientasi proyeksi.

Gambar 1. Ilustrasi transformasi Radon dalam koordinat asal kartesian Apabila citra dinyatakan dalam format koordinat asal polar f(r,), integral garis transformasi Radon sepanjang r menghasikan kurva sinusoidal s = r cos(). Bentuk sinusoidal ini menghasilkan istilah umum sinogram untuk kumpulan hasil transformasi Radon pada berbagai orientasi proyeksi.

Gambar 2. Ilustrasi transformasi Radon dalam koordinat asal polar Dalam image processing toolbox Matlab, transformasi Radon dapat dilakukan dengan memanggil fungsi berikut: [R,xp] = radon(I,theta); dimana R merupakan hasil transformasi Radon terhadap citra asal I, pada jangkauan orientasi arah theta dan jangkauan lebar daerah proyeksi pada koordinat transformasi xp.

Berikut adalah code lengkap dari simulasi transformasi Radon terhadap gambar phantom irisan lintang kepala menggunakan Matlab:

Gambar 3. Hasil transformasi Radon pada citra irisan kepala 2.2 Transformasi Radon Invers Invers transformasi Radon dari proyeksi g(s,) R(f), -Image Processing Tolbox>irad.

PRAKTIKUM EL4027 PENGOLAHAN CITRA BIOMEDIKA EB7031 PENGOLAHAN CITRA BIOMEDIKA LANJUT MODUL 5 TRANSFORMASI CITRA IMAGE TRANSFORM

Ada banyak metode yang digunakan untuk melakukan tranformasi image. Dua diantaranya adalah DFT (Discrete Fourier Transform) dan DCT (Discrete Cosinus Transform. Dengan menggunakan MatLab hal ini dapat kita lakukan dengan mudah.

DFT (Discrete Fourier Transform)

Transformasi Fourier merupakan representasi dari sebuah citra sebagai penjumlahan eksponensial kompleks dari beragam magnitude, frekuensi dan fasa. Contoh perintah untuk melakukan transformasi Fourier pada suatu citra:

f=checkerboard(8,8);

f(5:24,13:17)=1;

imshow(f,'notruesize')

f=fft2(f);

f2=log(abs(f));

figure,imshow(f2,[-1,5],'notruesize');

colormap(jet);

colorbar

Output program diberikan sebagai berikut:

Gambar 1. Sebelum dikenai FFT Gambar 2. Setelah dikenai FFT

DCT (Discrete Cosine Transform)

Discrete Cosine Transform merepresentasikan sebuah citra dari penjumlahan sinusoida dari magnitude dan frekuensi yang berubah-ubah. Sifat dari DCT adalah mengubah informasi citra yang signifkan dikonsentrasikan hanya pada beberapa koefisien DCT. Oleh karena itu DCT sering digunakan untuk kompresi citra seperti pada JPEG.

Contoh perintah untuk melakukan DCT pada suatu citra:

i=checkerboard(8,8);

j=dct2(i);

imshow(i);

figure,imshow(log(abs(j)),[]),colormap(jet(64)),

colorbar j(abs(j)