Loading repository data…
Loading repository data…
aldijanuari-dev / repository
MorfologiCitra adalah proyek Python menggunakan OpenCV untuk praktik operasi morfologi pada citra biner. Meliputi erosion, dilation, opening, closing, serta operasi turunan seperti gradient, top hat, dan black hat. Proyek ini memudahkan visualisasi hasil dan memahami konsep dasar pengolahan citra digital.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Proyek ini bertujuan untuk mempraktikkan materi pertemuan ke-5 mata kuliah Pengolahan Citra Digital, yaitu penerapan operasi morfologi pada citra biner menggunakan bahasa pemrograman Python dan pustaka OpenCV.
Untuk memahami dan mampu menerapkan operasi morfologi dasar, meliputi:
Serta operasi turunan:
Pastikan proyek memiliki struktur direktori sebagai berikut:
MorfologiCitra/
│
├── images/
│ └── Hirono2.jpeg ← gambar contoh
│
├── main.py ← file utama program
└── README.md ← file dokumentasi
Buka terminal pada PyCharm dan jalankan perintah berikut:
pip install opencv-python matplotlib numpy
main.py)import cv2
import numpy as np
import matplotlib.pyplot as plt
Digunakan untuk:
cv2: melakukan pemrosesan citra.numpy: membuat kernel atau structuring element.matplotlib: menampilkan hasil visualisasi citra.image = cv2.imread('images/hirono2.jpeg')
image_gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
Membaca citra dari direktori images dan mengubahnya menjadi format grayscale.
_, image_binary = cv2.threshold(image_gray, 127, 255, cv2.THRESH_BINARY)
Mengubah citra menjadi dua tingkat warna, yaitu:
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
Structuring element atau kernel berfungsi sebagai acuan bentuk dalam operasi morfologi. Ukuran (3,3) menunjukkan area pengolahan 3x3 piksel.
erosion = cv2.erode(image_binary, kernel, iterations=1)
Mengikis batas objek, sehingga objek menjadi lebih kecil dan noise kecil dapat dihilangkan.
dilation = cv2.dilate(image_binary, kernel, iterations=1)
Memperlebar batas objek dan menutup celah atau lubang kecil pada citra.
opening = cv2.morphologyEx(image_binary, cv2.MORPH_OPEN, kernel)
Melakukan erosi diikuti dilasi. Berguna untuk menghilangkan noise yang berada di luar objek.
closing = cv2.morphologyEx(image_binary, cv2.MORPH_CLOSE, kernel)
Melakukan dilasi diikuti erosi. Berguna untuk menutup lubang kecil yang terdapat di dalam objek.
gradient = cv2.morphologyEx(image_binary, cv2.MORPH_GRADIENT, kernel)
Menghasilkan tepi atau garis luar objek melalui selisih antara hasil dilasi dan erosi.
tophat = cv2.morphologyEx(image_binary, cv2.MORPH_TOPHAT, kernel)
Menampilkan area kecil yang lebih terang dari latar belakang.
blackhat = cv2.morphologyEx(image_binary, cv2.MORPH_BLACKHAT, kernel)
Menampilkan area kecil yang lebih gelap dari latar belakang.
plt.figure(figsize=(15, 10))
for i in range(len(images)):
plt.subplot(3, 3, i + 1)
plt.imshow(images[i], cmap='gray')
plt.title(titles[i])
plt.axis('off')
plt.tight_layout()
plt.show()
Menampilkan hasil dari setiap operasi morfologi dalam satu tampilan visual untuk memudahkan perbandingan.
| Operasi | Tujuan | Fungsi OpenCV |
|---|---|---|
| Erosion | Mengecilkan objek | cv2.erode() |
| Dilation | Memperbesar objek | cv2.dilate() |
| Opening | Menghilangkan noise di luar objek | cv2.morphologyEx(..., MORPH_OPEN) |
| Closing | Menutup lubang dalam objek | cv2.morphologyEx(..., MORPH_CLOSE) |
| Gradient | Menampilkan tepi objek | cv2.morphologyEx(..., MORPH_GRADIENT) |
| Top Hat | Menonjolkan area terang kecil | cv2.morphologyEx(..., MORPH_TOPHAT) |
| Black Hat | Menonjolkan area gelap kecil | cv2.morphologyEx(..., MORPH_BLACKHAT) |
images/.main.py.Ukuran kernel (3,3) dapat diubah menjadi (5,5) atau (7,7) untuk melihat perbedaan hasil operasi.
Bentuk kernel juga dapat diubah menggunakan:
cv2.MORPH_ELLIPSE
cv2.MORPH_CROSS
Proyek ini dapat digunakan sebagai latihan dalam memahami konsep dasar operasi morfologi pada citra biner dalam mata kuliah Pengolahan Citra Digital.