Anda di halaman 1dari 4

Pengolahan Citra Pertemuan 13

Amin Padmo Azam Masa, M.Cs.


Materi sebelumnya terkait dengan tahapan dalam pemprosesan pengenalan citra
digital:

Materi selanjutnya yang akan dibahas pada pertemuan ini adalah beberapa teknik
untuk melakukan proses Segmentasi Citra. Segmentasi citra pada dasarnya digunakan
untuk mengelompokkan/ memisahkan objek yang diinginkan (biasanya objek utama)
dengan objek yang tidak diinginkan (latar belakang).
Sedangkan pengertian lain dari segmentasi citra adalah pemrosesan citra dimana
citra dikelompokkan/ dibagi menjadi beberapa wilayah/region sehingga piksel diwilayah
yang sama memiliki karakteristik yang sama.

Materi kali ini mengambil referensi dari:


https://machinelearningknowledge.ai/image-segmentation-in-python-opencv/

ilustrasi Segmentasi Citra


Beberapa teknik untuk melakukan segmentasi citra diantaranya adalah:
1. Image Segmentasi using K-Means Algorithm
2. Image Segmentasi using Contour Detection
3. Image Segmentasi using Thresholding
4. Image Segmentasi using Color Masking
5. Dan lain-lain.

 Image Segmentasi using K-Means Algorithm


K-means Algorithm merupakan salah satu algoritma clustering yang populer
banyak digunakan untuk pengelompokkan citra menjadi region-region sejumlah
k kluster.
Dalam melakukan implemetasi segmentasi menggunakan K-means, silakan
kunjungi laman berikut untuk mengetahui terkait penjelasan maksud dari
variabel, parameter, flag, dan hal-hal lainnya yang terkait dalam rumus untuk
melakukan segmentasi dengan K-means:
https://opencv24-python-tutorials.readthedocs.io/en/latest/py_tutorials/
py_ml/py_kmeans/py_kmeans_opencv/py_kmeans_opencv.html

Implementasi K-means Clustering dengan python:

#import package
import cv2
import numpy as np

#load image
image = cv2.imread("D:/pantai.jpg")

#convert image from


# image = cv2.cvtColor(image,cv2.COLOR_BGR2RGB)

#ubah image menjadi vektor 2D: misalnya (100,100,3) (width, height, channels)
>> (10000,3)
img2D = image.reshape((-1,3))
#ubah uint8 menjadi tipe data float : ini merupakan persyaratan metode k-means
dari OpenCV.
img2D = np.float32(img2D)

#criteria : penghentian iterasi/ perulangan


#parameter: (type, max_iter, epsilon)
#type :
#cv2.TERM_CRITERIA_EPS : menghentikan iterasi algoritma jika akurasi yang
ditentukan, epsilon, tercapai
#cv2.TERM_CRITERIA_MAX_ITER : hentikan algoritma setelah jumlah iterasi yang
ditentukan, max_iter.
#cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER : hentikan iterasi ketika
salah satu kondisi di atas terpenuhi.
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
K = 3

# attempts: Tandai untuk menentukan berapa kali algoritme dijalankan


menggunakan pelabelan awal yang berbeda.
attempts=10

#compactness: jumlah kuadrat jarak dari setiap titik ke pusat masing-masing.


#labels : array label di mana setiap elemen ditandai '0', '1'.....
#centers : array pusat cluster.
#bestLabels : label kategori default > jika tidak ada, None.
#flag : digunakan untuk menentukan bagaimana pusat awal diambil.
#KMEANS_RANDOM_CENTERS Select random initial centers in each attempt.
#KMEANS_PP_CENTERS Use kmeans++ center initialization by Arthur and
Vassilvitskii

#parameter kmeans :(img_src, jumlah kluster,bestLabels, criteria, attempts,


flag)
compactness,labels,centers=cv2.kmeans(img2D,K,None,criteria,attempts,cv2.KMEAN
S_PP_CENTERS)
#ubah lagi kedalam uint8.
centers = np.uint8(centers)
#(labeling) mengakses label untuk membuat ulang gambar berkerumun
res = centers[labels.flatten()]
result_image = res.reshape((image.shape))

cv2.imshow("segmentasi",result_image)
cv2.waitKey(0)

TUGAS KELOMPOK:
 Image Segmentasi using Contour Detection
(Kelompok 5)
https://machinelearningknowledge.ai/image-segmentation-in-python-opencv/
 Image Segmentasi using Thresholding (otsu’s segmentation)
(Kelompok 4)
https://machinelearningknowledge.ai/image-segmentation-in-python-opencv/
 Image Segmentasi using Color Masking
(Kelompok 2)
https://machinelearningknowledge.ai/image-segmentation-in-python-opencv/
 Image Segmentasi berdasarkan background color
(Kelompok 1)
https://coderedirect.com/questions/588063/image-segmentation-by-
background-color-opencv-android
 Image Segmentasi using Watershed Algorithm
(kelompok 3 dan 7)
https://theailearner.com/tag/watershed-algorithm-opencv-python/
https://docs.opencv.org/4.x/d3/db4/tutorial_py_watershed.html
 Image Segmentasi using Color Space
(Kelompok 6 dan 8)
https://realpython.com/python-opencv-color-spaces/
referensi tambahan (dengan matlab):
https://pemrogramanmatlab.com/pengolahan-citra-digital/segmentasi-citra/

Anda mungkin juga menyukai