ใช้ตัวกรอง Median และ Wiener กับรูปภาพใน Python

ในหลายกรณี คุณต้องลดสัญญาณรบกวนภาพเพื่อปรับปรุงคุณภาพของภาพ สิ่งนี้มีประโยชน์เมื่อคุณต้องการปรับปรุงความชัดเจนโดยรวมของรูปภาพของคุณ นอกจากนี้ denoising ยังใช้เพื่อประมวลผลภาพล่วงหน้าก่อนที่จะวิเคราะห์เพิ่มเติม เช่น การจดจำ การแบ่งส่วน และอื่นๆ ฟิลเตอร์ Median และ Wiener มักใช้เพื่อลดนอยส์และทำให้ภาพเนียนขึ้น มาดูวิธีใช้ตัวกรองค่ามัธยฐานและตัวกรอง wiener กับรูปภาพใน Python

Python Library เพื่อใช้ Median และ Wiener Image Filters

ในการใช้ตัวกรองค่ามัธยฐานและตัวกรองแบบ Wiener บนรูปภาพ เราจะใช้ Aspose.Imaging for Python ซึ่งเป็นไลบรารีการประมวลผลรูปภาพอันทรงพลังที่ให้คุณจัดการรูปภาพได้อย่างง่ายดาย หากต้องการใช้ไลบรารี คุณสามารถ ดาวน์โหลด หรือติดตั้งโดยใช้คำสั่งต่อไปนี้

> pip install aspose-imaging-python-net 

ใช้ Median Filter กับรูปภาพใน Python

ตัวกรองมัธยฐานเป็นวิธีการ denoising ที่ใช้กันทั่วไปซึ่งใช้เทคนิคการกรองแบบดิจิทัลแบบไม่เชิงเส้น ต่อไปนี้เป็นขั้นตอนในการใช้ตัวกรองค่ามัธยฐานกับรูปภาพใน Python

  • ขั้นแรก ให้โหลดรูปภาพโดยใช้เมธอด Image.load()
  • จากนั้นส่งภาพเป็นประเภท RasterImage
  • สร้างอินสแตนซ์ของคลาส MedianFilterOptions และเริ่มต้นด้วยขนาดของสี่เหลี่ยมผืนผ้า
  • ใช้ตัวกรองค่ามัธยฐานโดยใช้เมธอด RasterImage.filter(Rectangle, MedianFilterOptions)
  • สุดท้าย บันทึกภาพที่กรองโดยใช้เมธอด RasterImage.save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้ตัวกรองค่ามัธยฐานกับรูปภาพใน Python

import aspose.pycore as aspycore
from aspose.imaging import Image, RasterImage
from aspose.imaging.imagefilters.filteroptions import MedianFilterOptions
import os


if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
# โหลดภาพที่มีสัญญาณรบกวน 
with Image.load(os.path.join(data_dir, "template.gif")) as image:
	# ส่งภาพไปที่ RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# สร้างอินสแตนซ์ของคลาส MedianFilterOptions และกำหนดขนาด ใช้ตัวกรอง MedianFilterOptions กับวัตถุ RasterImage และบันทึกภาพผลลัพธ์
		options = MedianFilterOptions(4)
		raster_image.filter(image.bounds, options)
		image.save(os.path.join(data_dir, "result.gif"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.gif"))

ด้านล่างคือภาพก่อนและหลังใช้ตัวกรองค่ามัธยฐาน

ใช้ Median Filter กับ Image Python

ใช้ตัวกรอง Gauss Wiener กับรูปภาพใน Python

Gauss wiener เป็นอีกวิธีหนึ่งที่ใช้กันทั่วไปเพื่อเพิ่มความคมชัดและลดสัญญาณรบกวนในภาพ มาดูขั้นตอนที่จำเป็นในการใช้ตัวกรอง Gauss wiener กับรูปภาพใน Python

  • ขั้นแรก ให้โหลดรูปภาพโดยใช้เมธอด Image.load()
  • จากนั้นส่งภาพเป็นประเภท RasterImage
  • สร้างอินสแตนซ์ของคลาส GaussWienerFilterOptions และเริ่มต้นด้วยขนาดรัศมีและค่าที่ราบรื่น
  • (ไม่บังคับ) หากต้องการรับภาพระดับสีเทา ให้ตั้งค่าคุณสมบัติ GaussWienerFilterOptions.grayscale เป็นจริง
  • ใช้ตัวกรอง Gauss wiener โดยใช้วิธี RasterImage.filter(Rectangle, GaussWienerFilterOptions)
  • สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด RasterImage.save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้ตัวกรอง Gauss wiener กับรูปภาพใน Python

import aspose.pycore as aspycore
from aspose.imaging import Image, RasterImage
from aspose.imaging.imagefilters.filteroptions import GaussWienerFilterOptions
import os


if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
# โหลดภาพ
with Image.load(os.path.join(data_dir, "template.jpg")) as image:
	# ส่งภาพไปที่ RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# สร้างอินสแตนซ์ของคลาส GaussWienerFilterOptions และตั้งค่าขนาดรัศมีและค่าความเรียบ
		options = GaussWienerFilterOptions(12, 3)
		options.grayscale = True
		# ใช้ตัวกรอง MedianFilterOptions กับวัตถุ RasterImage และบันทึกภาพผลลัพธ์
		raster_image.filter(image.bounds, options)
		image.save(os.path.join(data_dir, "result.jpg"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.jpg"))

ด้านล่างคือภาพก่อนและหลังใช้ตัวกรอง Gauss wiener พร้อมตัวเลือกระดับสีเทา

ใช้ Gauss Weiner Filter กับ Image Greyscaling

ต่อไปนี้คือภาพก่อนและหลังการใช้ตัวกรอง Gauss wiener โดยไม่มีการปรับสีเทา

ใช้ตัวกรองสี Gauss Weiner กับรูปภาพ

Motion Wiener Filter สำหรับรูปภาพใน Python

ฟิลเตอร์ Motion Wiener ใช้เพื่อลดความเบลอหรือการเสื่อมสภาพที่เกิดจากภาพเบลอจากการเคลื่อนไหว ภาพเบลอประเภทนี้เกิดขึ้นเนื่องจากการเคลื่อนไหวสัมพัทธ์ระหว่างกล้องกับวัตถุ ต่อไปนี้เป็นขั้นตอนในการใช้ตัวกรอง Motion Wiener กับรูปภาพใน Python

  • ขั้นแรก ให้โหลดรูปภาพโดยใช้เมธอด Image.load()
  • จากนั้นส่งภาพเป็นประเภท RasterImage
  • สร้างอินสแตนซ์ของคลาส MotionWienerFilterOptions และกำหนดค่าเริ่มต้นด้วยความยาว ค่าเรียบ และมุม
  • ใช้ฟิลเตอร์ Motion Wiener โดยใช้วิธี RasterImage.filter(Rectangle, MotionWienerFilterOptions)
  • สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด RasterImage.save()

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้ตัวกรองสัญญาณเคลื่อนไหวกับรูปภาพใน Python

import aspose.pycore as aspycore
from aspose.imaging import Image, RasterImage
from aspose.imaging.imagefilters.filteroptions import MotionWienerFilterOptions
import os


if 'TEMPLATE_DIR' in os.environ:
	templates_folder = os.environ['TEMPLATE_DIR']
else:
	templates_folder = r"C:\Users\USER\Downloads\templates"

delete_output = 'SAVE_OUTPUT' not in os.environ
data_dir = templates_folder
# โหลดภาพ
with Image.load(os.path.join(data_dir, "template.gif")) as image:
	# ส่งภาพไปที่ RasterImage
	if aspycore.is_assignable(image, RasterImage):
		raster_image = aspycore.as_of(image, RasterImage)
		# สร้างอินสแตนซ์ของคลาส MotionWienerFilterOptions และตั้งค่าความยาว ค่าที่ราบรื่น และมุม
		options = MotionWienerFilterOptions(50, 9, 90)
		options.grayscale = True
		# ใช้ตัวกรอง MedianFilterOptions กับวัตถุ RasterImage และบันทึกภาพผลลัพธ์
		raster_image.filter(image.bounds, options)
		image.save(os.path.join(data_dir, "result.gif"))

if delete_output:
	os.remove(os.path.join(data_dir, "result.gif"))
ใช้ตัวกรอง Motion Weiner กับรูปภาพใน Python

ฟรีไลบรารีตัวกรองรูปภาพ Python

คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี และใช้ตัวกรองค่ามัธยฐานและตัวกรอง Wiener กับรูปภาพโดยไม่มีข้อจำกัดในการประเมิน

แอปแก้ไขรูปภาพออนไลน์ฟรี

ใช้เครื่องมือแก้ไขรูปภาพบนเว็บฟรี เพื่อแก้ไขรูปภาพของคุณทางออนไลน์ โปรแกรมแก้ไขภาพนี้ใช้ Aspose.Imaging for Python และไม่ขอให้คุณสร้างบัญชี

บทสรุป

ในบทความนี้ คุณได้เรียนรู้วิธีใช้ตัวกรองค่ามัธยฐานและตัวกรอง Wiener กับรูปภาพใน Python ขั้นตอนและตัวอย่างโค้ดได้สาธิตวิธีการใช้ฟิลเตอร์ประเภทต่างๆ เพื่อตัดเสียงรบกวนรูปภาพโดยทางโปรแกรม นอกจากนี้ เรายังกล่าวถึงวิธีลดจุดรบกวนของวัตถุที่เคลื่อนไหวในภาพโดยใช้ฟิลเตอร์ Motion Wiener สุดท้ายนี้ เราได้จัดเตรียมแอปแก้ไขภาพออนไลน์ให้คุณฟรี และคุณสามารถใช้งานได้โดยไม่ต้องสมัครใช้งาน

คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับไลบรารีการประมวลผลรูปภาพของ Python โดยใช้ เอกสารประกอบ นอกจากนี้ คุณสามารถแบ่งปันคำถามของคุณกับเราผ่านทาง ฟอรัม

ดูสิ่งนี้ด้วย