ฉันต้องการสร้างข้อความจากภาพต่อไปนี้ให้ดีที่สุดเท่าที่จะทำได้ ส่วนที่ยุ่งยากคือฉันต้องการทำโดยใช้การทำงานแบบสัณฐานวิทยากับภาพเท่านั้น
ฉันลองใช้การกัดเซาะการขยายเปิดและปิด แต่ผลลัพธ์ไม่ดีมาก
เป็นไปได้ไหม
ฉันต้องการสร้างข้อความจากภาพต่อไปนี้ให้ดีที่สุดเท่าที่จะทำได้ ส่วนที่ยุ่งยากคือฉันต้องการทำโดยใช้การทำงานแบบสัณฐานวิทยากับภาพเท่านั้น
ฉันลองใช้การกัดเซาะการขยายเปิดและปิด แต่ผลลัพธ์ไม่ดีมาก
เป็นไปได้ไหม
คำตอบ:
หากคุณยินดีที่จะเพิ่ม / ลบ ฯลฯ ภาพที่มีการเปลี่ยนแปลงทางสัณฐานวิทยาคุณสามารถนับจำนวนพิกเซลสัญญาณที่อยู่ในบริเวณใกล้เคียงของแต่ละพิกเซลและเกณฑ์ตามจำนวนนั้น
img = imread('http://i.stack.imgur.com/wicpc.png');
n = false(3);n(4) = 1;
s = false(3);s(6) = 1;
w = false(3);w(2) = 1;
e = false(3);e(8) = 1;
%# note that you could convolve with a cross instead
fourNeighbourCount = imerode(img,n) + imerode(img,s) + imerode(img,w) + imerode(img,3) + img;
%# require at least two neighbours
img = fourNeighbourCount > 1;
หากคุณเชื่อใจด้วยหน้ากาก 3x3 ที่มีรูตรงกลางคุณสามารถได้รับสิ่งนี้:
นี่เป็นปัญหาที่น่าสนใจในการแก้ไข! ลองกรองมัธยฐาน ดูการอ้างอิงที่นี่และที่นี่สำหรับรายละเอียดเพิ่มเติม
แม้ว่าฉันจะไม่ได้เอามือมาจำลองปัญหาของคุณนี่เป็นคำแนะนำ ความรู้สึกของฉันบอกว่ามันอาจจะให้ประโยชน์ที่ดีกับคุณเพราะเป็นที่รู้กันว่ามีเสียงรบกวนเกลือ - พริกไทยป่น ในกรณีของคุณรูปภาพมีจุดสีขาวพิเศษรอบ ๆ ขอบซึ่งอาจถูกแปลงเป็นสีขาวเต็มหรือดำเต็มทั้งนี้ขึ้นอยู่กับด้านของตัวอักษร นี่คือลักษณะของการกรองค่ามัธยฐาน:
หากด้วยเหตุผลบางอย่างที่คุณ จำกัด ให้ใช้การดำเนินการทางสัณฐานวิทยาคุณสามารถพิจารณาใช้ "รูปแบบการลงคะแนน" ของการดำเนินการปิดที่มุ่งเน้น
ปัญหาหนึ่งที่เกี่ยวกับการทำงานของก้านคือไม่คำนึงถึงทิศทาง สำหรับพิกเซลกลางพื้นที่ใกล้เคียงเช่นนี้
1 0 0
1 1 0
0 1 1
ไม่ต่างจากย่านนี้อย่างแท้จริง
0 1 0
1 1 0
1 1 0
นั่นอาจทำให้เกิดปัญหาเนื่องจากการขยายและการกัดเซาะไม่ได้เอนเอียงไปในทิศทางที่คุณต้องการให้เป็น ดังนั้นสิ่งหนึ่งที่คุณสามารถทำได้คือหาการดำเนินการทางสัณฐานวิทยาที่มีทิศทางลำเอียงที่เหมาะสมที่สุดโดยใช้เมล็ดคล้ายสิ่งเหล่านี้:
1 1 0 1 0 0 1 0 0
0 1 0 1 1 0 1 1 0
0 1 1 0 1 1 0 1 1 . . .
น่าจะดีกว่านี้กับเมล็ดขนาด 5 x 5 แต่ฉันคิดว่าความคิดนั้นชัดเจนเพียงพอ โดยพื้นฐานแล้วความคิดของเคอร์เนลตรวจจับมุมถูกยืดออกไปเล็กน้อยเพื่อให้เป็นเคอร์เนลตรวจจับเซ็กเมนต์บรรทัด คุณสามารถใช้มันเพื่อหาเส้นโค้งที่เหมาะสมที่สุด:
0 0 0 1 1
0 0 1 1 0
0 1 1 0 0
0 0 1 1 0
0 0 0 1 1
เห็นได้ชัดว่าสิ่งนี้นำไปสู่การเป็นจำนวนมากของเมล็ด แต่ถ้าความคิดพื้นฐานแสดงให้เห็นว่าคุณมีวิธีที่จะเพิ่มประสิทธิภาพของเทคนิคเพื่อที่จะได้พบเคอร์เนลที่ดีที่สุดในครั้งเดียว
ไม่ว่าในกรณีใดถ้าคุณใช้เคอร์เนลหลายตัวและตรรกะบางอย่างการดำเนินการแต่ละอย่างที่ (x, y) ต้องใช้การคำนวณมากกว่าขั้นตอนทางสัณฐานวิทยาแบบดั้งเดิม:
ขนาดของเคอร์เนลต้องตรงกับขนาดของอินพุต แทนที่จะใช้เคอร์เนลที่ใหญ่กว่าคุณสามารถใช้เคอร์เนล "spread" เพื่อลดจำนวนการทำงาน เคอร์เนลต่อไปนี้เป็นเพียงเคอร์เนล 3 x 3 ที่มีรัศมีมากกว่า 1
1 0 0 0 0 0 0
0 0 0 0 0 0 0
1 0 0 1 0 0 0
0 0 0 0 0 0 0
1 0 0 0 0 0 1