Widget HTML Atas


Operasi Dasar pada Piksel: Penambahan dan Pengurangan

Praktikum PCD Pemula ke-6



Judul Praktikum

Operasi Dasar pada Piksel: Penambahan dan Pengurangan

Tujuan

1. Memahami konsep dasar operasi piksel dalam pengolahan citra digital.

2. Mengaplikasikan operasi penambahan dan pengurangan piksel pada gambar digital.

3. Mengembangkan keterampilan pemrograman dasar dengan Python dalam pengolahan citra.

Alat dan Bahan

- Komputer dengan Python 3 terinstal.

- Library NumPy dan Pillow (PIL) di Python.

- Setidaknya dua gambar digital untuk diolah.

Teori Singkat

Pengolahan citra digital melibatkan manipulasi gambar menggunakan algoritma komputer. Operasi dasar pada piksel, seperti penambahan dan pengurangan, merupakan fondasi untuk teknik pengolahan citra yang lebih kompleks. Penambahan piksel digunakan untuk mencerahkan gambar, sedangkan pengurangan piksel dapat digunakan untuk menggelapkan gambar. Operasi ini memanfaatkan prinsip bahwa gambar digital terdiri dari piksel-piksel yang nilai warnanya dapat dimodifikasi.

Langkah Kerja

1. Muat dua gambar menggunakan library Pillow.

2. Ubah gambar ke format array numpy untuk memudahkan operasi matematis.

3. Lakukan operasi penambahan piksel antara dua gambar dan simpan hasilnya.

4. Lakukan operasi pengurangan piksel antara dua gambar dan simpan hasilnya.

5. Analisis perbedaan hasil kedua operasi pada gambar hasil.

Pertanyaan

1. Bagaimana pengaruh operasi penambahan dan pengurangan pada detail gambar?

2. Apa yang terjadi jika nilai piksel hasil operasi melebihi 255 atau kurang dari 0?

Catatan

- Pastikan kedua gambar yang digunakan memiliki dimensi yang sama.

- Gunakan fungsi `np.clip` untuk memastikan nilai piksel tetap dalam rentang yang valid (0-255).

Kode Program

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from PIL import Image
import numpy as np

def load_image(image_path):
    """ Memuat gambar dan mengubahnya menjadi array numpy """
    with Image.open(image_path) as img:
        return np.array(img)

def save_image(image_array, output_path):
    """ Menyimpan array sebagai gambar """
    img = Image.fromarray(image_array)
    img.save(output_path)

def add_images(image1, image2):
    """ Menambahkan dua gambar """
    return np.clip(image1 + image2, 0, 255)

def subtract_images(image1, image2):
    """ Mengurangi satu gambar dari gambar lainnya """
    return np.clip(image1 - image2, 0, 255)

# Contoh Penggunaan (Ganti dengan path ke gambar yang sesuai)
image1 = load_image('path_ke_gambar_1.jpg')
image2 = load_image('path_ke_gambar_2.jpg')

added_image = add_images(image1, image2)
subtracted_image = subtract_images(image1, image2)

save_image(added_image, 'hasil_penambahan.jpg')
save_image(subtracted_image, 'hasil_pengurangan.jpg')