ในการสนทนาสองฟังก์ชั่นทางคณิตศาสตร์จะรวมกันเพื่อสร้างฟังก์ชั่นที่สาม ในฟังก์ชั่นการประมวลผลภาพมักจะเรียกว่าเมล็ด เคอร์เนลคืออะไรมากกว่าอาร์เรย์พิกเซล (สี่เหลี่ยมจัตุรัส) (ภาพเล็ก ๆ ดังนั้นควรพูด) โดยปกติแล้วค่าในเคอร์เนลจะเพิ่มขึ้นเป็นหนึ่งค่า เพื่อให้แน่ใจว่าจะไม่เพิ่มหรือลบพลังงานออกจากภาพหลังการใช้งาน
โดยเฉพาะเคอร์เนล Gaussian (ใช้สำหรับ Gaussian เบลอ) เป็นอาร์เรย์สี่เหลี่ยมจัตุรัสของพิกเซลที่ค่าพิกเซลสอดคล้องกับค่าของเส้นโค้ง Gaussian (ใน 2D)
แต่ละพิกเซลในภาพจะถูกคูณด้วยเคอร์เนลเกาส์เซียน สิ่งนี้ทำได้โดยการวางจุดศูนย์กลางของเคอร์เนลลงบนพิกเซลของภาพและคูณค่าในภาพต้นฉบับด้วยพิกเซลในเคอร์เนลที่ทับซ้อนกัน ค่าที่เกิดจากการคูณเหล่านี้จะถูกเพิ่มและผลลัพธ์นั้นจะถูกใช้สำหรับค่าที่พิกเซลปลายทาง เมื่อดูที่รูปภาพคุณจะคูณค่าที่ (0,0) ในอินพุตอาร์เรย์ด้วยค่าที่ (i) ในเคอร์เนลอาร์เรย์ค่าที่ (1,0) ในอาร์เรย์อินพุตด้วยค่าที่ (h ) ในเคอร์เนลอาเรย์และอื่น ๆ จากนั้นเพิ่มค่าเหล่านี้ทั้งหมดเพื่อรับค่า (1,1) ที่อิมเมจเอาต์พุต
เพื่อตอบคำถามที่สองของคุณก่อนยิ่งเคอร์เนลยิ่งใหญ่การดำเนินการก็จะยิ่งแพง ดังนั้นยิ่งรัศมีของเบลอมากเท่าไหร่การใช้งานก็จะยิ่งนานขึ้นเท่านั้น
เพื่อตอบคำถามแรกของคุณตามที่อธิบายไว้ข้างต้นสามารถทำได้โดยการคูณพิกเซลอินพุตเข้ากับเคอร์เนลทั้งหมด อย่างไรก็ตามหากเคอร์เนลมีความสมมาตร (ซึ่งเป็นเคอร์เนลเกาส์เซียน) คุณสามารถคูณแต่ละแกน (x และ y) ได้อย่างอิสระซึ่งจะลดจำนวนการคูณทั้งหมด ในแง่คณิตศาสตร์ที่เหมาะสมถ้าเมทริกซ์สามารถแบ่งได้เมทริกซ์สามารถแบ่งเป็น (M × 1) และเมทริกซ์ (1 × N) สำหรับเคอร์เนล Gaussian ด้านบนหมายความว่าคุณสามารถใช้เคอร์เนลต่อไปนี้ได้:
1256⋅ ⎡⎣⎢⎢⎢⎢⎢⎢1464141624164624362464162416414641⎤⎦⎥⎥⎥⎥⎥⎥= 1256⋅ ⎡⎣⎢⎢⎢⎢⎢⎢14641⎤⎦⎥⎥⎥⎥⎥⎥⋅ [ 14641]
ตอนนี้คุณจะคูณแต่ละพิกเซลในภาพอินพุตด้วยทั้งเมล็ดและเพิ่มค่าผลลัพธ์เพื่อรับค่าสำหรับพิกเซลเอาต์พุต
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีดูว่าเคอร์เนลแยกได้หรือไม่ให้ไปที่ลิงก์นี้
แก้ไข: เมล็ดทั้งสองที่แสดงด้านบนใช้ค่าที่แตกต่างกันเล็กน้อย นี่เป็นเพราะพารามิเตอร์ (sigma) ที่ใช้สำหรับส่วนโค้ง Gaussian เพื่อสร้างเมล็ดเหล่านี้มีความแตกต่างกันเล็กน้อยในทั้งสองกรณี สำหรับคำอธิบายว่าพารามิเตอร์ใดมีอิทธิพลต่อรูปร่างของเส้นโค้งเกาส์เซียนและทำให้ค่าในเคอร์เนลตามลิงค์นี้
แก้ไข: ในภาพที่สองด้านบนจะบอกว่าเคอร์เนลที่ใช้ถูกพลิก หลักสูตรนี้สร้างความแตกต่างได้ถ้าเคอร์เนลที่คุณใช้นั้นไม่สมมาตร เหตุผลที่คุณต้องพลิกเคอร์เนลนั้นเกี่ยวข้องกับคุณสมบัติทางคณิตศาสตร์ของการดำเนินการสังสรร (ดูลิงค์สำหรับคำอธิบายเชิงลึกเพิ่มเติมเกี่ยวกับการบิด) ใส่เพียง: ถ้าคุณจะไม่พลิกเคอร์เนลผลลัพธ์ของการดำเนินการ convolution จะถูกพลิก โดยการพลิกเคอร์เนลคุณจะได้รับผลลัพธ์ที่ถูกต้อง