Contoh Program PCD (Pengolahan Citra Digital)

Selamat pagi semuanya 🙂 semoga dalam keadaan sehat selalu

digital image processing

Pagi ini aku mau berbagi pengetahuan baru mengenai pengolahan citra digital. Disini saya memberi contohnya adalah program untuk menampilkan Histogram dari sebuah image/gambar, mengatur Brightness/Kecerahan gambar, Contrast, efek Negasi/Negate, dan efek Grayscale dari suatu gambar/image yang ditentukan. Program yang akan aku bagikan kali ini menggunakan bahasa pemrograman PHP :).

Dalam melakukan olah gambar, pertama kita harus bisa bagaimana cara mengambil pixel dari suatu gambar, mengetahui komposisi warna RGB dari pixel tersebut, kemudian terakhir harus bisa memberi warna baru/memberi nilai integer baru kepada pixel yang sudah kita mabil kemudian disusun menjadi gambar/image baru sesuai matriks/ukuran resolusi gambar awal.

Oke, pertama akan aku tunjukkan bagaiman cara mengambil pixel dari suatu gambar menggunakan PHP :

$imaged 	= "contoh_gambar.jpg";
$images 	= imagecreatefromjpeg($imaged);
$image_width 	= imagesx($images);
$image_height 	= imagesy($images);
$total_xy 	= $image_width*$image_height;

for($y=0;$y<$image_height;$y++){
	for($x=0;$x<$image_width;$x++){
		# mengambil komposisi warna RGB gambar
		$rgb = imagecolorat($images, $x, $y);
		# mengambil warna Red
		$r = ($rgb >> 16) & 0xFF;
		# mengambil warna Green
		$g = ($rgb >> 8) & 0xFF;
		# mengambil warna Blue
		$b = $rgb & 0xFF;
		# jadi komposisi RGB pixelnya adalah $r $g $b
		# masing-masing bernilai integer
	}
}

Kemudian, script berikut ini adalah contoh untuk mengatur gambar dengan komposisi pixel RGB yang baru, fungsi ini dapat diterapkan untuk pengaturan grayscale, brightness dan sebagainya.

$img = "contoh_gambar.jpg";
$images_source = imagecreatefromjpeg($img);
for($x=0;$x<imagesx($images_source);++$x){
	for($y=0;$y<imagesy($images_source);++$y){
        $index 		= imagecolorat($images_source, $x, $y);
        $rgb   		= imagecolorsforindex($images_source, $index);
		# mengambil warna R menggunakan fungsi imagecolorforindex
		# fungsi tsb hampir sama dengan imagecolorat
		# bedanya hanya return value
		$c_red 		= $rgb['red'];
		$c_green 	= $rgb['green'];
		$c_blue 	= $rgb['blue'];
		# ini berfungsi untuk menyusun komposisi warna baru untuk RGB
        $color 		= imagecolorallocate($images_source, $c_red, $c_green, $c_blue);
		# setelah komposisi baru terbentuk
		# kemudian ditanamkan ke gambar baru
		imagesetpixel($images_source, $x, $y, $color);
	}
}
imagejpeg($images_source, "gambar_baru.jpg", 100);
imagedestroy($images_source);

Cukup mudah bukan :mrgreen:, semoga dari potongan kode diatas bisa memberi pencerahan bagi teman-teman. Untuk bagaiman cara bisa melakukan edit brightness, grayscale dan lainnya, tergantung rumus pada masing-masing efek. ( tiap efek ada rumus matematika nya lho…. 😀 )

Oke, untuk script contoh program pengolaha citra digital yang sudah saya janjikan diatas, silahka download disini

Untuk request password silahkan hubungi saya melalui email atau nomor handphone :D, sengaja aku password karena ini merupakan tugasku, dan kebetulan belum dikumpulkan ke dosen,hehehe.