Pengolahan citra digital (digital image processing) merupakan bidang yang mempelajari teknik untuk memproses dan menganalisis citra menggunakan komputer. Citra digital merupakan representasi dari objek nyata yang ditangkap oleh perangkat seperti kamera atau scanner, kemudian disimpan dalam bentuk data numerik sehingga dapat diproses oleh komputer.
Tujuan utama pengolahan citra digital adalah untuk meningkatkan kualitas citra, mengekstraksi informasi penting, serta mempersiapkan citra untuk analisis lebih lanjut seperti pengenalan objek pada sistem computer vision.
2.1 Pengertian Citra Digital
Citra digital adalah representasi dua dimensi dari suatu objek yang terdiri dari sekumpulan elemen kecil yang disebut pixel (picture element). Setiap pixel memiliki nilai intensitas tertentu yang menunjukkan tingkat kecerahan atau warna pada titik tersebut.
Secara matematis, citra digital dapat direpresentasikan sebagai fungsi dua dimensi:dimana:
- dan menunjukkan koordinat posisi pixel
- menunjukkan nilai intensitas pada pixel tersebut
Nilai intensitas ini dapat berupa:
- tingkat keabuan (grayscale)
- nilai warna (RGB atau BGR)
2.2 Pixel pada Citra Digital
Pixel merupakan unit terkecil dari citra digital. Setiap pixel menyimpan informasi intensitas cahaya atau warna.
Sebagai contoh, sebuah citra dengan resolusi:
1024 × 768
memiliki:
786.432 pixel
Setiap pixel memiliki koordinat tertentu yang menunjukkan posisinya dalam citra.
Contoh koordinat pixel:
(0,0) (1,0) (2,0)
(0,1) (1,1) (2,1)
(0,2) (1,2) (2,2)
Koordinat pixel biasanya dimulai dari pojok kiri atas citra.
2.3 Resolusi Citra
Resolusi citra menunjukkan jumlah pixel yang terdapat dalam suatu citra.
Resolusi biasanya dinyatakan dalam bentuk:
lebar × tinggi
Contoh resolusi citra:
| Resolusi | Jumlah Pixel |
|---|---|
| 640 × 480 | 307.200 |
| 1280 × 720 | 921.600 |
| 1920 × 1080 | 2.073.600 |
Semakin tinggi resolusi citra, maka semakin banyak informasi visual yang dapat disimpan dalam citra tersebut.
Namun, resolusi yang tinggi juga menyebabkan ukuran file citra menjadi lebih besar.
2.4 Jenis-Jenis Citra Digital
Dalam pengolahan citra digital, terdapat beberapa jenis citra yang umum digunakan.
1. Citra Biner
Citra biner hanya memiliki dua nilai pixel yaitu:
0 = hitam
1 = putih
Citra jenis ini biasanya digunakan pada proses segmentasi objek.
2. Citra Grayscale
Citra grayscale hanya memiliki satu kanal warna yang menunjukkan tingkat keabuan.
Nilai pixel berada pada rentang:
0 – 255
Keterangan:
0 = hitam
255 = putih
Citra grayscale sering digunakan dalam banyak algoritma pengolahan citra karena lebih sederhana dibandingkan citra berwarna.
3. Citra Berwarna (Color Image)
Citra berwarna terdiri dari beberapa kanal warna. Pada umumnya digunakan model warna RGB (Red, Green, Blue).
Namun pada OpenCV digunakan format:
BGR (Blue, Green, Red)
Setiap pixel memiliki tiga nilai intensitas.
Contoh nilai pixel:
[255, 0, 0]
artinya warna biru penuh pada format BGR.
2.5 Representasi Matriks pada Citra
Secara komputasi, citra digital direpresentasikan dalam bentuk matriks.
Contoh citra grayscale:
52 55 61 66
70 61 64 73
63 65 66 75
62 70 68 79
Setiap angka menunjukkan nilai intensitas pixel.
Pada citra berwarna, setiap pixel memiliki tiga matriks:
Blue Channel
Green Channel
Red Channel
Sehingga citra berwarna dapat direpresentasikan sebagai matriks tiga dimensi.
2.6 Histogram Citra
Histogram citra merupakan grafik yang menunjukkan distribusi intensitas pixel dalam suatu citra.
Histogram digunakan untuk:
- menganalisis kontras citra
- menentukan tingkat pencahayaan
- melakukan enhancement citra
Contoh interpretasi histogram:
- histogram condong ke kiri → citra terlalu gelap
- histogram condong ke kanan → citra terlalu terang
- histogram merata → kontras baik
2.7 Tahapan Dasar Pengolahan Citra
Dalam sistem pengolahan citra digital, umumnya terdapat beberapa tahapan utama.
1. Akuisisi Citra
Proses pengambilan citra menggunakan perangkat seperti kamera atau sensor.
2. Preprocessing
Tahap peningkatan kualitas citra seperti:
- pengurangan noise
- peningkatan kontras
- smoothing
3. Segmentasi
Memisahkan objek dari latar belakang citra.
4. Ekstraksi Fitur
Mengambil informasi penting dari objek seperti:
- bentuk
- tekstur
- warna
5. Pengenalan Objek
Mengidentifikasi objek menggunakan teknik klasifikasi atau machine learning.
2.8 Peran Pengolahan Citra dalam Computer Vision
Pengolahan citra digital merupakan tahap awal yang sangat penting dalam computer vision. Tanpa pengolahan citra yang baik, sistem computer vision akan kesulitan dalam memahami isi citra.
Sebagai contoh:
| Tahap | Fungsi |
|---|---|
| Pengolahan citra | meningkatkan kualitas citra |
| Computer vision | memahami isi citra |
Dengan demikian, pengolahan citra berperan sebagai fondasi utama dalam sistem computer vision.
Pengolahan Citra Digital Menggunakan OepnCV
2.1 Membaca Citra Digital
Citra digital dapat dibaca menggunakan fungsi cv2.imread().
Contoh Program
import cv2
img = cv2.imread("gambar.jpg")
cv2.imshow("Citra Asli", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Penjelasan
| Fungsi | Keterangan |
|---|---|
cv2.imread() | membaca file citra |
cv2.imshow() | menampilkan citra |
cv2.waitKey() | menunggu input keyboard |
cv2.destroyAllWindows() | menutup semua window |
2.2 Mengetahui Resolusi Citra
Resolusi citra dapat diketahui menggunakan atribut shape.
Contoh Program
import cv2
img = cv2.imread("gambar.jpg")
print("Ukuran citra:", img.shape)
Output contoh:
Ukuran citra: (720, 1280, 3)
Penjelasan:
| Nilai | Keterangan |
|---|---|
| 720 | tinggi citra |
| 1280 | lebar citra |
| 3 | jumlah channel warna |
2.3 Konversi Citra ke Grayscale
Citra berwarna dapat diubah menjadi citra grayscale menggunakan fungsi cv2.cvtColor().
Contoh Program
import cv2
img = cv2.imread("gambar.jpg")
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow("Grayscale", gray)
cv2.waitKey(0)
cv2.destroyAllWindows()
Citra grayscale hanya memiliki 1 channel intensitas.
2.4 Mengakses Nilai Pixel
Pixel dapat diakses menggunakan koordinat (baris, kolom).
Contoh Program
import cv2
img = cv2.imread("gambar.jpg")
pixel = img[100,100]
print("Nilai pixel:", pixel)
Output contoh:
Nilai pixel: [120 145 210]
Artinya:
| Channel | Nilai |
|---|---|
| Blue | 120 |
| Green | 145 |
| Red | 210 |
Perlu diperhatikan bahwa OpenCV menggunakan format BGR, bukan RGB.
2.5 Mengambil Nilai Warna Secara Terpisah
Setiap pixel memiliki tiga komponen warna.
Contoh Program
import cv2
img = cv2.imread("gambar.jpg")
b, g, r = img[100,100]
print("Blue:", b)
print("Green:", g)
print("Red:", r)
2.6 Mengubah Nilai Pixel
Nilai pixel dapat dimodifikasi untuk mengubah warna pada citra.
Contoh Program
import cv2
img = cv2.imread("gambar.jpg")
img[100,100] = [0,0,255]
cv2.imshow("Perubahan Pixel", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
2.7 Mengubah Area Pixel (Region of Interest)
Kita juga dapat mengubah area tertentu pada citra.
Contoh Program
import cv2
img = cv2.imread("gambar.jpg")
img[100:200,100:200] = [0,0,0]# membuat kotak hitam
cv2.imshow("ROI", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
Penjelasan:
100:200 → rentang baris
100:200 → rentang kolom
2.8 Menampilkan Histogram Citra
Histogram digunakan untuk melihat distribusi intensitas pixel.
Contoh Program
import cv2
import matplotlib.pyplot as plt
img = cv2.imread("gambar.jpg",0)
plt.hist(img.ravel(),256,[0,256])
plt.title("Histogram Citra")
plt.show()
Histogram ini menunjukkan jumlah pixel pada setiap tingkat intensitas.
2.9 Menyimpan Hasil Pengolahan Citra
Citra hasil pengolahan dapat disimpan menggunakan cv2.imwrite().
Contoh Program
import cv2
img = cv2.imread("gambar.jpg")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imwrite("hasil_grayscale.jpg", gray)
File baru akan tersimpan sebagai hasil_grayscale.jpg.
