การแก้ไขรูปภาพใช้ในแอปพลิเคชันต่างๆ เพื่อจัดการรูปภาพสำหรับการประมวลผลเพิ่มเติม เราได้เขียนบล็อกเป็นชุด เช่น การครอบตัด, หมุน, การเบลอ เป็นต้น ซึ่งมีประโยชน์สำหรับคุณในการปรับใช้คุณสมบัติการแก้ไขภาพในแอปพลิเคชันของคุณ ในบทความนี้ เราจะแสดงวิธีการใช้ตัวกรองค่ามัธยฐานและตัวกรองแบบ Wiener ซึ่งมักใช้เพื่อลดจุดรบกวนและทำให้ภาพเรียบขึ้น มาดูวิธีการนำไฟล์ค่ามัธยฐานและ Wiener ไปใช้กับรูปภาพโดยทางโปรแกรมใน C#
- C # API เพื่อใช้ตัวกรองรูปภาพ Median และ Wiener
- ใช้ Median Filter กับรูปภาพใน C#
- ใช้ตัวกรอง Gauss Wiener กับรูปภาพ
- Motion Wiener การกรองรูปภาพ
C# API เพื่อใช้ตัวกรองรูปภาพ Median และ Wiener - ดาวน์โหลดฟรี
Aspose.Imaging for .NET เป็น API ที่ยอดเยี่ยมสำหรับใช้คุณสมบัติการแก้ไขรูปภาพในแอปพลิเคชัน .NET เราจะใช้ API นี้สำหรับการใช้ตัวกรองค่ามัธยฐานและค่ากลางบนรูปภาพ คุณสามารถ ดาวน์โหลด API หรือติดตั้งจาก NuGet
PM> Install-Package Aspose.Imaging
ใช้ Median Filter กับรูปภาพใน C#
Median filter เป็นเทคนิคการกรองแบบดิจิตอลแบบไม่เชิงเส้น ซึ่งใช้เพื่อลดสัญญาณรบกวนจากภาพ ต่อไปนี้เป็นขั้นตอนในการใช้ตัวกรองค่ามัธยฐานกับรูปภาพใน C#
- ขั้นแรก โหลดรูปภาพโดยใช้เมธอด Image.Load()
- จากนั้น ส่งภาพไปที่ประเภท RasterImage
- สร้างอินสแตนซ์ของคลาส MedianFilterOptions และเริ่มต้นด้วยขนาดของสี่เหลี่ยมผืนผ้า
- ใช้ตัวกรองค่ามัธยฐานโดยใช้เมธอด RasterImage.Filter(Rectangle, MedianFilterOptions)
- สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด RasterImage.Save()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้ตัวกรองค่ามัธยฐานกับรูปภาพใน C#
// โหลดภาพที่มีสัญญาณรบกวน
using (Image image = Image.Load("jack.jpg"))
{
// แคสต์ภาพเป็น RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// สร้างอินสแตนซ์ของคลาส MedianFilterOptions และกำหนดขนาด
MedianFilterOptions options = new MedianFilterOptions(4);
// ใช้ตัวกรองและบันทึกภาพ
rasterImage.Filter(image.Bounds, options);
image.Save("jack_median.jpg");
}
ด้านล่างคือภาพก่อนและหลังใช้ตัวกรองค่ามัธยฐาน
ใช้ตัวกรอง Gauss Wiener กับรูปภาพใน C
อีกวิธีหนึ่งที่ใช้กันทั่วไปเพื่อลดสัญญาณรบกวนเพิ่มเติมและการเบลอของภาพคือ gauss wiener ต่อไปนี้เป็นขั้นตอนในการใช้ตัวกรอง gauss wiener กับรูปภาพใน C#
- ขั้นแรก โหลดรูปภาพโดยใช้เมธอด Image.Load()
- จากนั้น ส่งภาพไปที่ประเภท RasterImage
- สร้างอินสแตนซ์ของคลาส GaussWienerFilterOptions และเริ่มต้นด้วยขนาดรัศมีและค่าที่ราบรื่น
- (ไม่บังคับ) หากต้องการรับภาพโทนสีเทา ให้ตั้งค่าคุณสมบัติ GaussWienerFilterOptions.Grayscale เป็นจริง
- ใช้ตัวกรอง gauss wiener โดยใช้วิธี RasterImage.Filter(Rectangle, GaussWienerFilterOptions)
- สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด RasterImage.Save()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้ตัวกรอง Gauss Wiener กับรูปภาพใน C#
// โหลดภาพที่มีสัญญาณรบกวน
using (Image image = Image.Load("jack.jpg"))
{
// แคสต์ภาพเป็น RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// สร้างอินสแตนซ์ของคลาส GaussWienerFilterOptions และตั้งค่าขนาดรัศมีและค่าความเรียบ
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.Grayscale = true;
// ใช้ตัวกรอง MedianFilterOptions กับวัตถุ RasterImage และบันทึกภาพผลลัพธ์
rasterImage.Filter(image.Bounds, options);
image.Save("jack_guass.jpg");
}
ด้านล่างคือภาพก่อนและหลังใช้ตัวกรองเกาส์วีเนอร์ด้วยตัวเลือกระดับสีเทา
ต่อไปนี้คือภาพก่อนและหลังใช้ตัวกรอง Gauss Wiener โดยไม่มีการปรับโทนสีเทา
ใช้ตัวกรอง Motion Wiener กับรูปภาพใน C
ฟิลเตอร์ Motion Wiener ใช้เพื่อลบภาพเบลอที่เกิดจากวัตถุที่กำลังเคลื่อนที่ ต่อไปนี้เป็นขั้นตอนในการใช้ตัวกรอง Motion Wiener กับรูปภาพใน C#
- ขั้นแรก โหลดรูปภาพโดยใช้เมธอด Image.Load()
- จากนั้น ส่งภาพไปที่ประเภท RasterImage
- สร้างอินสแตนซ์ของคลาส MotionWienerFilterOptions และเริ่มต้นด้วยความยาว ค่าที่ราบรื่น และมุม
- ใช้ฟิลเตอร์ Motion Wiener โดยใช้วิธี RasterImage.Filter(Rectangle, MotionWienerFilterOptions)
- สุดท้าย บันทึกภาพผลลัพธ์โดยใช้เมธอด RasterImage.Save()
ตัวอย่างโค้ดต่อไปนี้แสดงวิธีใช้ตัวกรองสัญญาณเคลื่อนไหวกับรูปภาพใน C#
// โหลดภาพที่มีสัญญาณรบกวน
using (Image image = Image.Load("jack.jpg"))
{
// แคสต์ภาพเป็น RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// สร้างอินสแตนซ์ของคลาส MotionWienerFilterOptions และตั้งค่าความยาว ค่าที่ราบรื่น และมุม
MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90);
options.Grayscale = true;
// ใช้ตัวกรอง MedianFilterOptions กับวัตถุ RasterImage และบันทึกภาพผลลัพธ์
rasterImage.Filter(image.Bounds, options);
image.Save("jack_MotionWiener.jpg");
}
C# Median และ Wiener Image Filtering API - รับใบอนุญาตฟรี
คุณสามารถ รับใบอนุญาตชั่วคราวได้ฟรี และใช้ตัวกรองค่ามัธยฐานและตัวกรอง Wiener กับรูปภาพโดยไม่มีข้อจำกัดในการประเมิน
บทสรุป
ในบทความนี้ คุณได้เรียนรู้วิธีใช้ตัวกรองค่ามัธยฐานและตัวกรอง Wiener กับรูปภาพใน C# นอกจากนี้ เราได้กล่าวถึงวิธีลดจุดรบกวนของวัตถุที่เคลื่อนไหวในภาพ คุณสามารถใช้คุณสมบัติเหล่านี้ในแอปพลิเคชัน C# เพื่อรวมความสามารถในการแก้ไขรูปภาพได้อย่างง่ายดาย
อ่านเพิ่มเติม
คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ API การประมวลผลภาพ .NET โดยใช้ เอกสารประกอบ นอกจากนี้ คุณสามารถแบ่งปันคำถามของคุณกับเราผ่านทาง ฟอรัม