THOUSANDS OF FREE BLOGGER TEMPLATES

Jumat, 23 Desember 2011

Pengolahan Citra - Memahami Histogram dan Penjelasan Program

Kelompok : - Arry Ardiantara (50408136)
- Fier Hartandi (50408361)

PENGOLAHAN CITRA DENGAN TEKNIK HISTOGRAM PHP

Citra (image) istilah lain untuk gambar sebagai salah satu komponen multimedia memegang peranan sangat penting sebagai bentuk informasi visual. Citra mempunyai karakteristik yang tidak dimiliki oleh data teks, yaitu citra kaya dengan informasi. Citra (image) adalah gambar pada bidang dua dimensi yang dihasilkan dari gambar analog dua dimensi yang kontinyu menjadi gambar diskrit melalui proses digitasi. Secara harafiah, citra (image) adalah gambar pada bidang dua dimensi. Ditinjau dari sudut pandang matematis, citra merupakan fungsi menerus (continue) dari intensitas cahaya pada bidang dua dimensi. Sumber cahaya menerangi objek, objek memantulkan kembali sebagian dari berkas cahaya tersebut. Pantulan cahaya ini ditangkap oleh oleh alat-alat optik, misalnya mata pada manusia, kamera, pemindai (scanner), dan sebagainya, sehingga bayangan objek yang disebut citra tersebut terekam. Teknik-teknik pengolahan citra mentransformasikan citra menjadi citra lain. Jadi, masukannya adalah citra dan keluarannya juga citra, namun citra keluaran mempunyai kualitas lebih baik daripada citra masukan.

Ada banyak teknik dalam peningkatan mutu citra (image enhancement). Salah satu teknik yang cukup terkenal adalah teknik histogram equalization. Teknik ini menyatakan frekuensi kemunculan berbagai derajat keabuan dalam citra. Teknik pemodelan histogram mengubah citra hingga memiliki histogram sesuai keinginan. Teknik pemodelan yang sering dipakai adalah ekualisasi histogram. Ekualisasi histogram bertujuan untuk mendapatkan histogram citra dengan distribusi seragam.

Histogram adalah representasi grafis untuk distribusi warna dari citra digital. Sumbu ordinat vertikal merupakan representasi piksel dengan nilai tonal dari tiap-tiap deret bin pada sumbu axis horizontalnya.[3] Sumbu axis terdiri dari deret logaritmik bin densitometryyang membentuk rentang luminasi atau exposure range yang mendekati respon spectral sensitivity visual mata manusia. Deret bin pada density yang terpadat mempunyai interval yang relatif sangat linear dengan variabel mid-tone terletak tepat di tengahnya.
Pada histogram fotografis, grafis batang tidak mempunyai luasan yang menunjukkan jumlah piksel pada tiap bin. Grafis batang menjadi grafis garis vertikal yang mewakili seluruh jumlah piksel pada deret bin luminasi tersebut. Sebagai contoh, sebuah foto ukuran 4288x2848 piksel yang mempunyai 1 tone akan mempunyai histogram dengan 1 garis lurus vertikal pada nilai bin luminasinya, bukan berupa 12,212,224 garis vertikal yang mempunyai panjang sama.

Pada program Histogram ini menggunakan PHP sebagai bahasa pemrogramannya.
Berikut saya akan menjelaskan mengenai koding programnya.

$source_file = "test_image.jpg";
$maxheight = 300;
$barwidth = 2;
$im = ImageCreateFromJpeg($source_file);
$imgw = imagesx($im);
$imgh = imagesy($im);
// Koding diatas menjelaskan tentang pembuatan image yang ada pada histogram menggunakan file berupa JPEG

$n = $imgw*$imgh;
$histo = array();
for ($i=0; $i<$imgw; $i++)
{
for ($j=0; $j<$imgh; $j++)
{
// Koding diatas menjelaskan tentang rumus pengambilan nilai pixel dari gambar untuk dibuat grafik pada histogramnya
$rgb = ImageColorAt($im, $i, $j);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
$V = round(($r + $g + $b) / 3);
// Koding diatas menjelaskan tentang berapa nilai dari RGB RGB nya (RGB : Red Green Blue)
$histo[$V] += $V / $n;
}
}
// Koding diatas menjelaskan tentang pengambilan point pada histogramnya


$max = 0;
for ($i=0; $i<255; $i++)
{
if ($histo[$i] > $max)
{
$max = $histo[$i];
}
}


echo "(div style='width: ".(256*$barwidth)."px; border: 1px solid')";
for ($i=0; $i<255; $i++)
{
$val += $histo[$i];

$h = ( $histo[$i]/$max )*$maxheight;

echo '(img src=\"img.gif\' width=\''.$barwidth.'\' height=\''.$h.'\' border=\'0\')';
}


// Koding diatas digunakan untuk mencari nilai maksimum dari gambar untuk ditampilkan di grafik histogram


echo '(/div)';
echo '(img src='(blablabla.jpg/.png'/)(br)';


?>
// Koding diatas digunakan untuk memasukkan gambar apa yang akan digunakan untuk dicari histogramnya


Untuk tampilan dan proses apa saja yang dapat terjadi pada program ini, kami memberikan screenshot dari program ini.

Contoh Histogram dari sebuah gambar berukuran pixel besar dan jernih dengan file bertipe .JPG


Contoh Histogram dari sebuah gambar berukuran pixel kecil dengan file bertipe .JPG


Contoh Histogram dari sebuah gambar berukuran pixel besar dan jernih dengan file bertipe .PNG


Dari beberapa gambar tersebut dapat dilihat bahwa semakin besar ukuran gambar dan semakin jernih kualitas gambar maka histogramnya pun akan semakin ke arah kiri dan juga semakin tebal grafik dari histogramnya yang menandakan RGB dari gambar yang sangat tebal dan berbanding terbalik dengan gambar yang berukuran kecil, histogramnya akan semakin ke kanan dan grafik dari histogramnya pun akan semakin tipis yang menandakan RGB dari gambar sangat sedikit. Dan dari gambar pula dapat disimpulkan bahwa program kami ini dapat memakai file bertipe .PNG juga.
Akan tetapi pasti akan selalu ada kelemahan dari setiap program. Kelemahan dari program kami ini, kami akui sendiri sangat banyak seperti tidak adanya penjelasan di grafik histogramnya serta tidak terdapat GUI-nya sehingga jika ingin mengganti gambar diharuskan masuk ke dalam koding programnya.

0 komentar: