05 Image Blurring With OpenCV Python

You might also like

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 11

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

You might also like