# Praktikum 4

## Pengantar <a href="#pengantar" id="pengantar"></a>

Pada praktikum ini kita akan mencoba melakukan proses pra pengolahan data sederhana pada data citra atau gambar. Pada proses pengolahan data citra, terdapat beberapa hal umum yang biasa dilakukan sebelum proses ekstraksi fitur, diantaranya adalah resizing dan penyesuaian warna.

Sebelum praktikum, silahkan download data citra berikut ini,

<figure><img src="https://polinema.gitbook.io/jti-modul-praktikum-pembelajaran-mesin/~gitbook/image?url=https%3A%2F%2Fupload.wikimedia.org%2Fwikipedia%2Fen%2F7%2F7d%2FLenna_%2528test_image%2529.png&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=50bdd02f&#x26;sv=2" alt=""><figcaption></figcaption></figure>

Simpan data citra dengan nama "**Lenna.png**".

## Langkah 0 - Persiapan <a href="#langkah-0-persiapan" id="langkah-0-persiapan"></a>

Lakukan instalasi modul OpenCV pada perangkat komputasi.

```
!pip install -q opencv-python matplotlib
```

Kemudian, import library yang dibutuhkan pada notebook.

```python
import cv2
import matplotlib.pyplot as plt
```

## Langkah 1 - Load Gambar <a href="#langkah-1-load-gambar" id="langkah-1-load-gambar"></a>

Load gambar menggunakan OpenCV dan ubah colorspace menjadi RGB. Hal ini dikarenakan secara default, OpenCV akan membaca gambar dalam format BGR.

```python
# Membaca gambar (BGR default di OpenCV)
img = cv2.imread("Lenna.png")

# Konversi BGR → RGB (agar warnanya tampil benar di matplotlib)
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# Tampilkan
plt.imshow(img_rgb)
plt.title("Gambar Asli")
plt.axis("off")
plt.show()
```

## Langkah 2 - Resize Gambar <a href="#langkah-2-resize-gambar" id="langkah-2-resize-gambar"></a>

Selanjutnya, ubah ukuran gambar menjadi 128x128px.

```python
# Resize gambar
img_resized = cv2.resize(img_rgb, (128, 128))

plt.imshow(img_resized)
plt.title("Gambar setelah Resize (128x128)")
plt.axis("off")
plt.show()
```

Jika diperhatikan, akan terdapat perbedaan pada ketajaman gambar.

<figure><img src="https://polinema.gitbook.io/jti-modul-praktikum-pembelajaran-mesin-mah/~gitbook/image?url=https%3A%2F%2F1812311909-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYHOv2XH8FJMJSMsnhwNa%252Fuploads%252FwAJIAqP5GDtTpDl5QImO%252Fimage.png%3Falt%3Dmedia%26token%3D19dfffc9-4e10-4787-8ec8-a443cb789acf&#x26;width=768&#x26;dpr=2&#x26;quality=100&#x26;sign=81e7ab56&#x26;sv=2" alt=""><figcaption></figcaption></figure>

## Langkah 3 - Ubah ke Grayscale <a href="#langkah-3-ubah-ke-grayscale" id="langkah-3-ubah-ke-grayscale"></a>

Selanjutnya kita akan mengubah warna citra ke dalam bentuk grayscale.

```python
# Konversi ke grayscale
img_gray = cv2.cvtColor(img_resized, cv2.COLOR_BGR2GRAY)

plt.imshow(img_gray, cmap="gray")
plt.title("Gambar Grayscale")
plt.axis("off")
plt.show()
```

Hasilnya sebagai berikut,

<figure><img src="https://polinema.gitbook.io/jti-modul-praktikum-pembelajaran-mesin-mah/~gitbook/image?url=https%3A%2F%2F1812311909-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252FYHOv2XH8FJMJSMsnhwNa%252Fuploads%252F8GDdecAanf1KaQTdmrQ7%252Fimage.png%3Falt%3Dmedia%26token%3D11589a18-cb75-4847-9c30-703571a48105&#x26;width=768&#x26;dpr=2&#x26;quality=100&#x26;sign=c1c04d04&#x26;sv=2" alt=""><figcaption></figcaption></figure>

Dalam praktiknya, tentunya tidak hanya proses resize dan grayscale yang akan dilakukan. Proses pra pengolahan data pada data tidak terstruktur bergantung dengan tujuan pembuatan model.
