Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรม OpenCV Python เพื่อเบลอภาพ?


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

ผลลัพธ์

โปรแกรม OpenCV Python เพื่อเบลอภาพ?

ทั้งสองภาพเกือบจะคล้ายกัน (ต้นฉบับ/เบลอ) ตอนนี้ให้เราเพิ่มขนาดเคอร์เนลและสังเกตผลลัพธ์

dst = cv2.GaussianBlur(src,(13,13),cv2.BORDER_DEFAULT)

โปรแกรม OpenCV Python เพื่อเบลอภาพ?

ตอนนี้มีความแตกต่างที่ชัดเจนระหว่างสองภาพ