OpenCV เป็นหนึ่งในแพ็คเกจหลามที่ดีที่สุดสำหรับการประมวลผลภาพ เช่นเดียวกับสัญญาณที่มีสัญญาณรบกวนติดอยู่ รูปภาพก็มีสัญญาณรบกวนประเภทต่าง ๆ เช่นกันซึ่งส่วนใหญ่มาจากแหล่งกำเนิดเอง (เซ็นเซอร์กล้อง) แพ็คเกจ Python OpenCV มีวิธีทำให้ภาพราบรื่นขึ้นหรือที่เรียกว่าการเบลอ นี่คือสิ่งที่เราจะทำในส่วนนี้ เทคนิคทั่วไปอย่างหนึ่งคือการใช้ฟิลเตอร์เกาส์เซียน (Gf) เพื่อทำให้ภาพเบลอ ด้วยวิธีนี้ ขอบที่คมชัดในภาพจะมีความเรียบเนียนในขณะที่ลดการเบลอมากเกินไป
ไวยากรณ์
cv.GaussianBlur(src, ksize, sigmaX[, dst[, sigmaY[, borderType=BORDER_DEFAULT]]] )
ที่ไหน−
-
src – ใส่รูปภาพ
-
วันที่ – ภาพที่ส่งออก
-
ksize – ขนาดเคอร์เนล Gaussian [ ความกว้าง ความสูง ] หากตั้งค่า ksize เป็น [0 0] ระบบจะคำนวณ ksize จากค่าซิกมา
-
ซิกม่าเอ็กซ์ – ส่วนเบี่ยงเบนมาตรฐานเคอร์เนลตามแกน X (ทิศทางแนวนอน)
-
ซิกม่า – ส่วนเบี่ยงเบนมาตรฐานเคอร์เนลตามแกน Y (ทิศทางแนวตั้ง)
-
ประเภทเส้นขอบ – ระบุขอบเขต iage ในขณะที่เคอร์เนลถูกนำไปใช้กับเส้นขอบของภาพ ค่าที่เป็นไปได้ไม่กี่ค่า ได้แก่ cv.BORDER_CONSTANT, cv.BORDER_REPLICATE, cv.BORDER_REFLECT, cv.BORDER_WRAP, cv.BORDER_DEFAULT, cv.BORDER_ISOLATED, cv.BORDER_TRANSPARENT เป็นต้น
ด้านล่างนี้คือโปรแกรมสำหรับเบลอภาพแบบเกาส์เซียนโดยใช้แพ็คเกจ OpenCV
import cv2 import numpy # read image src = cv2.imread('LionKing.jpeg', cv2.IMREAD_UNCHANGED) # apply guassian blur on src image dst = cv2.GaussianBlur(src,(3,3),cv2.BORDER_DEFAULT) # display input and output image cv2.imshow("Gaussian Blur",numpy.hstack((src, dst))) cv2.waitKey(0) # waits until a key is pressed cv2.destroyAllWindows() # destroys the window showing image
ผลลัพธ์
ทั้งสองภาพเกือบจะคล้ายกัน (ต้นฉบับ/เบลอ) ตอนนี้ให้เราเพิ่มขนาดเคอร์เนลและสังเกตผลลัพธ์
dst = cv2.GaussianBlur(src,(13,13),cv2.BORDER_DEFAULT)
ตอนนี้มีความแตกต่างที่ชัดเจนระหว่างสองภาพ