Binary Image Processing Lecture 2 Binary Image Processing
Gray Scale and Color Image Gray = 0.299 * R + 0.587 * G + 0.114 * B
Gray Scale and Color Image
Histogram
Thresholding
Thresholding using Histogram
Thresholding by Photoshop Figure / Ground Separation แยกรูป (Figure) ออกจากพื้นหลัง (background) Algorithm for Threshold if(pixel[row][column].color >=100) pixel[row][column].color = 255 else pixel[row][column].color = 0
Properties of Binary Image (1) Area 0 means white (background)
Properties of Binary Image (2) Position of Object
Properties of Binary Image (2) Position of Object X= 2(1)+3(3)+4(3)+5(8)+6(5)+7(5)+8(2) = 2+9+12+40+30+35+16=144/27 = 5.33 = 5 Y= 2(1)+3(4)+4(5)+5(4)+6(3)+7(6)+8(3)+9(1) = 2+12+20+20+18+42+24+9 = 147/27 = 5.44 = 5 Position of object = (5,5)
Properties of Binary Image (3) Projection
Properties of Binary Image (3) Projection
Blob Coloring (region segment)
Neighboring System
Neighboring System
Line Segment Labeling mask
Blob coloring example mask Equivalent set
Run length encoding Binary image Start and length of 1 runs : row1 = (1,3) (7,2) (12,4) (17,2) (20,3) row2 = (5,13) (19,4) row3 = (1,3) (17,6) Length of 1 and 0 runs : row1 = (1,3) (0,3) (1,2) (0,3) (1,4) (0,1) (1,2) (0,1) (1,3) row2 = (0,4) (1,13) (0,1) (1,4) row3 = (1,3) (0,13) (1,6)
Chain Code Contour คือเส้นขอบที่แสดงถึงรูปร่างของวัตถุในภาพ Chain Code มีไว้สำหรับแสดงทิศทางที่ต่อเชื่อมถึงกันของ edge point ที่เป็น Contour โดยใช้ตัวเลข การหาทิศทางจาก Chain Code ให้หาทิศทางตามเข็มนาฬิกา ในการหา Chain Code จะใช้ Mask 8 neighbors ซึ่งมีค่าดังนี้ X คือ pixel ปัจจุบัน
Chain Code ก่อนที่จะทำ Chain Code ของ Contour ใด ๆ จะต้องทำการหาขอบของภาพก่อน (Edge Detection) ซึ่งจะใช้การหาขอบแบบใดก็ได้ เช่น Robert, Prewitt, Canny หลังจากทำ Edge Detection แล้วให้พิจารณาเฉพาะ pixel ที่เป็นขอบเท่านั้นในการทำ Chain Code Edge Detection
Chain Code (Example) Edge Contour สามารถสรุป Chain code ดังนี้ 6(2), 5(3), 4(1), 3(1), 5(5), 7(1), 6(1), 5(2), 7(1), 6(1), 8(1), 7(2), 1(1), 2(2), 8(2), 1(2), 2(1),4(1), 2(1),1(2), 8(4), 2(3),4(1), 2(1), 4(1), 3(2), 5(2) Chain Code
Project ให้นักศึกษาแบ่งกลุ่ม 5 กลุ่ม กลุ่มละ 4 คน เขียนโปรแกรม OCR ด้วยภาษาโปรแกรม อะไรก็ได้ (ยกเว้น matlab) เพื่ออ่านภาพตัวอักษรภาษาอังกฤษ a-z, A-Z, 0-9, สัญลักษณ์สำคัญต่าง ๆ ที่ได้จากภาพจากการ scan โดย scanner โดยให้ใช้ตัวอักษร Arial ขนาด 12 ตัวปกติ โดย Test image จะต้องไม่จำกัดบรรทัดในการอ่าน และ output ที่ออกมาจะต้องสามารถเว้นวรรค ขึ้นบรรทัดใหม่ได้เหมือน Test image นักศึกษาต้องทำรายงานการเขียนโปรแกรมพร้อมบอก Algorithm และแนวคิดต่าง ๆ ในการเขียนโปรแกรม และต้อง present หน้าชั้นเรียนด้วย (ทุกคนในกลุ่ม) ส่งก่อนสอบ Final หนึ่งสัปดาห์ 22
Assignment2 ให้นักศึกษาเขียนโปรแกรมกลุ่มละ 2 คน โดยให้ทำการรับภาพตัวอักษรภาษาอังกฤษ Arial ขนาด 12 เข้ามาโดยรับกี่บรรทัดก็ได้ แล้วให้ทำการตัดบรรทัด แต่ละบรรทัดออกมาโดยใช้วิธี Horizontal Projection โดยแต่ละบรรทัดที่ตัดออกมาได้นั้นให้ Save ออกมาเป็นไฟล์ภาพของแต่ละบรรทัดที่ตัดได้ 23