grabbed, frame = camera.
read()
if not grabbed:
raise ValueError("Camera read failed!")
bg = utils.image_resize(frame, height=600).astype(np.float32)
while True:
grabbed, frame = camera.read()
if not grabbed:
print "Camera read failed"
break
frame = utils.image_resize(frame, height=600)
height, width, channels = frame.shape
if not calibrated:
# Sample hand color
utils.add_text(frame, "Press space after covering rectangle with hand. Hit SPACE when ready")
x, y, w, h = width / 4, height / 2, 50, 50
cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
Image Blurring with OpenCV Python
cv2.imshow("Calibration", frame)
if cv2.waitKey(2) & 0xFF == ord(' '):
roi = frame[y:y + h, x:x + w, :]
roi_hsv = cv2.cvtColor(roi, cv2.COLOR_BGR2HSV)
min_value = np.amin(roi_hsv, (0, 1))
max_value = np.amax(roi_hsv, (0, 1))
cv2.destroyWindow("Calibration")
calibrated = True
else:
cv2.accumulateWeighted(frame, bg, 0.01) MK: Image Processing
Oleh: Danang Erwanto, ST., MT
010100010010101010000100010100101010010100010001001101010010010101010
010100010010101010000100010101001001101010100100100101010
grabbed, frame = camera.read()
if not grabbed:
raise ValueError("Camera read failed!")
Pendahuluan
bg = utils.image_resize(frame, height=600).astype(np.float32)
while True:
grabbed, frame = camera.read()
if not grabbed:
print "Camera read failed"
break
• Image Blurring adalah sebuah filter pada pengelolahan citra digital
untuk membuat image menjadi buram.
• Blurring gambar dicapai dengan menggabungkan gambar dengan
kernel filter low-pass. Yang berguna untuk menghilangkan noise.
• OpenCV menyediakan empat jenis teknik blurring utama antara lain:
• Averaging
• Gaussian Filtering
• Median Filtering
• Bilateral Filtering
MK : Image Processing (MKKPC09603)
Program Studi : Teknik Elektro – Uniska Kediri
grabbed, frame = camera.read()
if not grabbed:
raise ValueError("Camera read failed!")
Averaging
bg = utils.image_resize(frame, height=600).astype(np.float32)
while True:
grabbed, frame = camera.read()
if not grabbed:
print "Camera read failed"
break
• Dilakukan dengan menggabungkan gambar dengan
filter kotak yang dinormalisasi hanya mengambil
rata-rata semua piksel di bawah area kernel dan
menggantikan elemen sentral dengan rata-rata
tersebut.
• Fungsi yang digunakan cv2.blur()
atau cv2.boxFilter().
MK : Image Processing (MKKPC09603)
Program Studi : Teknik Elektro – Uniska Kediri
grabbed, frame = camera.read()
if not grabbed:
raise ValueError("Camera read failed!")
Averaging
bg = utils.image_resize(frame, height=600).astype(np.float32)
while True:
grabbed, frame = camera.read()
if not grabbed:
print "Camera read failed"
break
Hasil blurring dengan
kernel: 10, 10
MK : Image Processing (MKKPC09603)
Program Studi : Teknik Elektro – Uniska Kediri
grabbed, frame = camera.read()
if not grabbed:
raise ValueError("Camera read failed!")
Gaussian
bg = utils.image_resize(frame, height=600).astype(np.float32)
while True:
grabbed, frame = camera.read()
if not grabbed:
print "Camera read failed"
break
• Linear filter yang biasa digunakan sebagai pengolah citra agar
dapat lebih halus.
• Gaussian filter bertujuan menghilangkan noise pada citra &
meningkatkan kualitas detil citra.
• Gaussian merupakan model noise yang mengikuti distribusi normal
standard dengan rata-rata nol dan standard deviasi 1. Efek
dari gaussian, pada gambar muncul titik-titik berwarna yang
jumlahnya sama dengan presentase noise.
• Noise speckle merupakan model noise yang memberikan warna
hitam pada titik yang terkena noise.
• Sedangkan noise salt & pepper seperti halnya taburan garam, akan
memberikan warna putih pada titik yang terkena noise.
• Fungsi yang digunakan cv2.GaussianBlur()
MK : Image Processing (MKKPC09603)
Program Studi : Teknik Elektro – Uniska Kediri
grabbed, frame = camera.read()
if not grabbed:
raise ValueError("Camera read failed!")
Gaussian
bg = utils.image_resize(frame, height=600).astype(np.float32)
while True:
grabbed, frame = camera.read()
if not grabbed:
print "Camera read failed"
break
Hasil blurring
dengan kernel: 7, 7
MK : Image Processing (MKKPC09603)
Program Studi : Teknik Elektro – Uniska Kediri
grabbed, frame = camera.read()
if not grabbed:
raise ValueError("Camera read failed!")
Median
bg = utils.image_resize(frame, height=600).astype(np.float32)
while True:
grabbed, frame = camera.read()
if not grabbed:
print "Camera read failed"
break
• Sangat efektif pada penghapusan noise sambil
memperhatikan tepinya.
• Namun operasinya lebih lambat dibandingkan filter
lainnya.
• Median dicari dengan melakukan pengurutan
terhadap nilai piksel dari mask yang sudah
ditentukan, kemudian dicari nilai tengahnya.
• Fungsi yang digunakan cv2.medianBlur()
MK : Image Processing (MKKPC09603)
Program Studi : Teknik Elektro – Uniska Kediri
grabbed, frame = camera.read()
if not grabbed:
raise ValueError("Camera read failed!")
Median
bg = utils.image_resize(frame, height=600).astype(np.float32)
while True:
grabbed, frame = camera.read()
if not grabbed:
print "Camera read failed"
break
Hasil blurring
dengan nilai mask: 5
MK : Image Processing (MKKPC09603)
Program Studi : Teknik Elektro – Uniska Kediri
grabbed, frame = camera.read()
if not grabbed:
raise ValueError("Camera read failed!")
Bilateral
bg = utils.image_resize(frame, height=600).astype(np.float32)
while True:
grabbed, frame = camera.read()
if not grabbed:
print "Camera read failed"
break
• Pada mean filtering dalam setiap piksel output
diatur ke tingkat rata-rata dari nilai-nilai piksel
dalam mask yang ditentukan. Namun, dengan
median filtering, nilai piksel output ditentukan oleh
median dari lingkungan mask yang ditentukan.
• Filter bilateral juga menggunakan filter Gaussian
dalam domain ruang, tetapi juga menggunakan satu
lagi komponen filter Gaussian (multiplikatif) yang
merupakan fungsi dari perbedaan intensitas piksel.
• Fungsi yang
digunakan cv2.bilateralFilter()
MK : Image Processing (MKKPC09603)
Program Studi : Teknik Elektro – Uniska Kediri
grabbed, frame = camera.read()
if not grabbed:
raise ValueError("Camera read failed!")
Bilateral
bg = utils.image_resize(frame, height=600).astype(np.float32)
while True:
grabbed, frame = camera.read()
if not grabbed:
print "Camera read failed"
break
Hasil blurring
dengan nilai mask:
10 dan kernel :
75,75
MK : Image Processing (MKKPC09603)
Program Studi : Teknik Elektro – Uniska Kediri
grabbed, frame = camera.read()
if not grabbed:
raise ValueError("Camera read failed!")
bg = utils.image_resize(frame, height=600).astype(np.float32)
while True:
grabbed, frame = camera.read()
if not grabbed:
print "Camera read failed"
break
MK : Image Processing (MKKPC09603)
Program Studi : Teknik Elektro – Uniska Kediri