ปรีวิทย์โอเปอเรเตอร์

ตัวดำเนินการ Prewitt ใช้สำหรับการตรวจจับขอบในภาพ ตรวจจับขอบสองประเภท

  • ขอบแนวนอน
  • ขอบแนวตั้ง

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

มาสก์อนุพันธ์ทั้งหมดควรมีคุณสมบัติดังต่อไปนี้:

  • ควรมีเครื่องหมายตรงข้ามอยู่ในหน้ากาก
  • ผลรวมของมาสก์ควรเท่ากับศูนย์
  • น้ำหนักที่มากขึ้นหมายถึงการตรวจจับขอบที่มากขึ้น

ตัวดำเนินการ Prewitt มีหน้ากากสองอันสำหรับตรวจจับขอบในแนวนอนและอีกอันสำหรับตรวจจับขอบในแนวตั้ง

ทิศทางแนวตั้ง

-1 0 1
-1 0 1
-1 0 1

หน้ากากด้านบนจะพบขอบในแนวตั้งและเป็นเพราะคอลัมน์ศูนย์ในแนวตั้ง เมื่อคุณปรับมาสก์นี้กับรูปภาพมันจะทำให้คุณได้ขอบแนวตั้งในรูปภาพ

มันทำงานอย่างไร

เมื่อเราใช้มาสก์นี้กับรูปภาพจะมีขอบแนวตั้งที่เด่นชัด มันทำงานเหมือนเป็นอนุพันธ์ลำดับแรกและคำนวณความแตกต่างของความเข้มของพิกเซลในพื้นที่ขอบ เนื่องจากคอลัมน์กลางเป็นศูนย์จึงไม่รวมค่าดั้งเดิมของรูปภาพ แต่จะคำนวณความแตกต่างของค่าพิกเซลด้านขวาและด้านซ้ายรอบขอบนั้น สิ่งนี้จะเพิ่มความเข้มของขอบและเพิ่มขึ้นเมื่อเทียบกับภาพต้นฉบับ

ทิศทางแนวนอน

-1 -1 -1
0 0 0
1 1 1

หน้ากากด้านบนจะพบขอบในแนวนอนและเป็นเพราะคอลัมน์ศูนย์นั้นอยู่ในแนวนอน เมื่อคุณจะปรับมาสก์นี้เข้ากับรูปภาพมันจะมีขอบแนวนอนที่เด่นชัดในภาพ

มันทำงานอย่างไร

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

ตอนนี้ได้เวลาดูการใช้งานมาสก์เหล่านี้แล้ว:

ภาพตัวอย่าง

ต่อไปนี้เป็นภาพตัวอย่างที่เราจะใช้สองหน้ากากข้างบนพร้อมกัน

หลังจากใช้ Vertical Mask

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

หลังจากใช้ Horizontal Mask

หลังจากใช้มาสก์แนวนอนกับภาพตัวอย่างด้านบนแล้วจะได้ภาพต่อไปนี้

การเปรียบเทียบ

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