Apa Itu Pixel? Pengertian Pixel pada Citra Digital

Gilangarisptr
5 min readAug 24, 2020

--

Jika kita mengamati era teknologi saat ini maka, kita tidak akan bisa lepas dari citra digital. Contohnya saja layar smartphone, kamera digital, TV, smart watch, Laptop, komputer dan masih banyak lagi. Citra digital dapat didefinisikan sebagai sebuah fungsi f(x,y) yang berbentuk 2 dimensi, dimana x dan y adalah bidang koordinat. Amplitudo yang dihasilkan oleh fungsi f pada titik koordinat x,y adalah intensitas atau nilai derajat keabuan dari suatu citra di titik tersebut. Jika seluruh nilai x,y, dan amplitudo yang dihasilkan oleh fungsi f adalah merupakan nilai yang terbatas (ada batas acuannya) dan jumlahnya diskrit maka kita dapat menyebutnya sebagai citra digital (Rafael C. Gonzalez, 2001). masing-masing lokasi di dalam sebuah citra digital memiliki nilai tertentu.nilai tertebut dapat berupa elemen suatu lokasi, beberapa nilai/element dari suatu citra adalah picture element, image element, pels, dan pixel. Pixel adalah suatu istilah atau terminologi yang dipakai secara luas untuk menggambarkan sebuah citra digital agar komputer / mesin /interface yang lain dapat dengan mudah memahami gambar tersebut. Setiap citra terdiri dari sekumpulan pixel. Pixel dapat diilustrasikan seperti blok lantai. Kumpulan dari blok lantai itu bisa membentuk suatu pola. Masing-masing blok lantai yang berbentuk segi empat dapat kita asumsikan bernilai 1 pixel. Sebagai Contoh: kita memiliki resolusi citra input sebesar 500x300. Jika resolusi citra tersebut berbentuk blok-blok lantai atau semacam grid maka jumlah pixel yang kita punya saat ini dari citra tersebut adalah 500 x 300 = 150000 pixel.

Jika seluruh nilai x,y, dan amplitudo yang dihasilkan oleh fungsi f adalah merupakan nilai yang terbatas (ada batas acuannya) dan jumlahnya diskrit maka kita dapat menyebutnya sebagai citra digital (Rafael C. Gonzalez, 2001).

Gambar 1 proses pembentukan citra digital (Rafael C. Gonzalez, 2001)

Gambar 1 menunjukkan prinsip pembentukkan suatu citra digital. Sumber energi cahaya merambat melalui udara dan dipantulkan melalui scene. Scene adalah suatu objek (molekul, batuan, otak manusia, ataupun yang lainnya. Bentuknya tergantung pada jenis sumber cahayanya.) yang dapat memantulkan energi cahaya atau menyerapnya. Kemudian pantulan cahaya tersebut diserap dan diproses oleh sistem pencitraan digital, seperti yang terlihat pada gambar 1(c) . sistem pencitraan digital akan mengumpulkan cahaya tersebut dan memfokuskannya ke dalam diagram kartesian dengan skala x dan y. Jika sumber intensitas cahaya rendah, maka bagian depan sistem pencitraan yang berupa lensa atau sensor akan mengatur proyeksi focal plane agar mendapatkan nilai fokus yang sesuai. Gambar 1(d) menunjukkan array sensor yang bertepatan dengan nilai focal plane atau titik fokus pada citra, menghasilkan output yang sebanding dengan nilai integral dari cahaya yang diterima pada masing — masing sensor. Kemudian output tersebut diubah ke bentuk sinyal analog yang selanjutnya didigitalisasi dengan proses yang lain di dalam sistem pencitraan digital. Gambar 1(e) adalah hasil final dari citra yang terdigitalisasi.

Sebagian dari kita merepresentasikan pixel dengan dua cara yaitu dengan greyscale (keabuan) dan berwarna. Di dalam sebuah gambar greyscale (gambar hitam putih kalo biasa kita sebut), masing-masing pixelnya memiliki nilai dalam rentang 0–255, dimana 0 sebagai hitam dan 255 sebagai warna putih. Nilai diantara 0 dan 255 adalah tingkat keabuan suatu citra. Semakin kecil nilainya maka warna abu-abunya semakin gelap sebaliknya, jika nilainya semakin besar maka warna abu-abunya semakin cerah.

Gamber 2: Skala Citra grayscale

Kalau kita berbicara tentang pixel warna maka normalnya kita merepresentasikan itu dengan warna RGB (red, green, blue). Karena pixel warna terdiri dari 3 buah warna dasar maka masing-masing warna tersebut memiliki rentang nilainya masing-masing. Masing-masing dari ketiga warna tersebut direpresentasikan dengan nilai integer dengan rentang nilai dari 0–255, nilai tersebut mengindikasikan seberapa banyak warna yang ada pada pixel tersebut. Formasi dari nilai RGB ini adalah sebuah tuple (pokoknya simplenya tuple itu kayak array tetapi tiap-tiap nilainya itu representasi dari nilai dari variabel tertentu), nah bentuk dari tuple RGB ini adalah berturut-turut (red,green,blue). Oke biar paham langsung aja ke contohnya. misalkan jika kita ingin menghasilkan warna hijau maka nilai untuk pixel tersebut adalah : (0,255,0), jika ingin menghasilkan warna merah maka nilai yang dihasilkan adalah : (255,0,0), kalau pengen warna biru (0,0,255), kalau semisal pengen warna putih maka nilainya (255.255.255) tetapi kalau mau warna hitam maka nilainya (0,0,0). Sampai sini pahamkan? Udah nemu polanyakan?

Gambar 3 Contoh warna RGB

karena suatu citra adalah kumpulan pixel yang jumlahnya banyak. maka sebenarnya suatu citra itu dapat direpresentasikan dengan matriks array 2 dimensi yang memiliki nilai x dan y. gambar 4 menunjukkan ilustrasi dari koordinat pixel

Gambar 4 Koordinat pixel Ukuran 10x10

Akses dan Manipulasi Pixel dengan Python

import cv2
from IPython import display
import PIL
import os

pertama masukkan dan siapkan library yang dibutuhkan. dalam praktek ini kita memerlukan library python, PIL, dan os. apabila kalian menggunakan google colab maka tambahkan library cv2_imshow()

from google.colab.patches import cv2_imshow

kemudian akses gambar tersebut dan simpan di dalam variabel img. tampilkan besaran arraynya:

img = cv2.imread('/playingpixel/contoh.jpg')
print(img.shape)
--output
(380, 367, 3)

tampilkan variabel img:

cv2_imshow(img)--output

tampilkan nilai warna dari masing-masing channel di lokasi tertentu. contoh program di bawah ini saya menggunakan koordinat 0,0 yang letaknya ada di pojok kiri atas.

(b, g, r) = img[0,0]
print("nilai blue: {}, red: {}, green: {}".format(b,g,r))
--output
nilai blue: 38, red: 179, green: 228

selain dapat mengakses nilai warna setiap channel pada koordinat tertentu, kita juga dapat mengganti warna pada koordinat tertentu. perhatikan program di bawa ini. saya akan mengganti warna citra untuk setiap x 0–100 dan y 0–100 dengan warna hijau dengan kode rgb (0,255,0). coba deh kalian bisa menggantinya dengan warna lain dengan kode RGB yang terdapat pada gambar 3.

img[0:100,0:100] = (0,255,0)--output
ini hasilnyaa..

saya akan eksperimen sedikit. bagaimana jika kita ingin membuat papan catur dengan citra seperti itu? ini contoh program dari saya..

globimg = cv2.resize(img, (512,512))w = 64h = 64for j in range(int(512/64)) :    for i in range(int(512/64)):       if ((j%2 != 0 ) == (i%2 != 0)):          globimg[64*j:((64*j)+64),64*i:((64*i)+64)] = (0,0,0)cv2_imshow(globimg)

hasilnya…

sekian artikel kali ini. semoga bermanfaat. jangan lupa share ke teman-teman kalian, kalau menurut kalian artikel ini bermanfaat. terimakasihh..

Daftar Pustaka:

  1. Rafael C. Gonzalez, R. E. W., 2001. Digital Image Processing. 2nd ed. new Jersey: Pretince Hall.
  2. Rosebrock, A., 2016. Practical Python and OpenCV. 3rd ed. s.l.:pyimagesearch

--

--

Gilangarisptr

Indonesian AI blog. A place to learn about AI,ML,Deep learning, and computer vision. share to your friends, couple, or etc if you feel this content is useful.