Thursday, September 3, 2015

Citra Negatif Menggunakan Matlab

Operasi image negative atau citra negatif akan menghasilkan citra negatif dimana hasil dari operasi inversi akan mengubah nilai setiap piksel pada citra dengan mengurangi nilai intensitas piksel asli dari nilai intensitas piksel maksimumnya. Hasil dari operasi ini akan tampak perbedaan yang mencolok dari citra aslinya dimana nilai setiap pikselnya selalu berlawanan dengan citra aslinya, misalnya warna asli putih menjadi hitam, merah menjadi cyan, magenta menjadi hijau dsb. Tipe proses ini cocok untuk memperbaiki detail level putih atau keabuan pada latar belakang yang gelap. Proses ini banyak digunakan pada citra medis seperti USG dan foto sinar X.

Misalkan : pada citra gray 8 bit (256 derajat keabuan), citra negatif yang diperoleh adalah (256-1) – f(x,y)
Secara umum didefinisikan sebagai berikut :
S  = T(r)=L-1-r
dimana :
r   = intensitas asli
S  = intensitas baru
L  = nilai intensitas maksimum

sebenarnya untuk mendapatkan citra negatif, matlab sendiri telah menyediakan library menggunakan imcomplement. berikut ini adalah source program menggunakan library dari matlab :
I = imread('glass.png');
J = imcomplement(I);
imshow(I), figure, imshow(J)
Namun, apabila menggunakan library yang telah disediakan matlab, kita jadi tidak tahu cara penerapan rumus citra negatif ke dalam program. Untuk itu, saya akan membagikan source program citra negatif menggunakan matlab tanpa library. berikut adalah source program matlab tanpa menggunakan library :
clear all force
close all
img = imread('imggray.jpg');
%Ambil ukuran gambar
[baris kolom] = size(img);
%operasi gambar ke negative menggunakan s = L-1-r
for j = 1:baris
    for k = 1:kolom
         img_negt(j,k) = 255 - img(j,k);
    end
end
%menampilkan citra awal
imshow(img); title('Citra Asli');
%menampilkan citra setelah proses image negative
figure; imshow(img_negt); title('citra setelah proses image negative');

program diatas hanya digunakan pada citra grayscale (putih abu-abu). untuk citra berwarna, tinggal tambahkan satu baris looping untuk layer citra. Karena citra berwarna memiliki 3 layer, yaitu RGB. berikut ini adalah source program citra negatif menggunakan matlab untuk citra berwarna :

clear all force
close all
img = imread('imgneg.jpg');
%Ambil ukuran gambar
[baris kolom layer] = size(img);
%operasi gambar ke negative menggunakan s = L-1-r
for j = 1:layer
    for k = 1:baris
         for l = 1:kolom
               img_negt(k,l,j) = 255 - img(k,l,j);
         end
    end
end
%menampilkan citra awal
imshow(img); title('Citra Asli');
%menampilkan citra setelah proses image negative
figure; imshow(img_negt); title('citra setelah proses image negative');


Download source lengkapnya
Citra grayscale disini
Citra berwarna disini

0 comments

Post a Comment