การนับวัตถุ ในภาพ

การนับวัตถุในภาพ
การกำหนดหมายเลขให้ส่วนที่เชื่อมกัน (Connected-component labeling)
ใช้ในการวิเคราะห์ส่วนประกอบหรือบริเวณที่มีการเชื่อมติดกันและใช้ในการแยกบริเวณต่างๆออกจากกันซึ่งไม่เหมือนกับวิธีตัดแยกโดยวิธีการกำหนดหมายเลขให้ส่วนที่เชื่อมกัน (Connected-component labeling) เป็นวิธีที่ใช้ในคอมพิวเตอร์วิทัศน์ (Computer vision) เพื่อตรวจจับบริเวณที่เชื่อมติดกันของภาพขาวดา ภาพสี แต่โดยทั่วไปใช้ในภาพขาวดาที่ผ่านการประมวลผลมาแล้ว อาจใช้ในการนับจานวน การกรองและการติดตาม

ภาพที่ 21 แบบจุด 4 จุด เชื่อมกันและแบบจุด 8 จุด เชื่อมกัน

จากรูปที่ 21 จุดที่อยู่รอบๆ จุดที่อยู่ตำแหน่งตรงกลางคือ เพื่อนบ้านมีทั้งแบบจุด 4 จุด เชื่อมกันและแบบจุด 8 จุด เชื่อมกันโดยเพื่อนบ้านที่เชื่อมกันก็คือขอบนั้นเอง การกำหนดหมายเลขมี 2 แบบคือแบบจุด 4 จุด เชื่อมกันและแบบจุด 8 จุด เชื่อมกัน มีข้อแตกต่างกันคือ ถ้าเป็นแบบจุด 4 จุด เชื่อมกันจะเลือกจุดที่เชื่อมกันเฉพาะบน ล่าง ซ้าย ขวา แต่หากเป็น แบบจุด 8 จุด เชื่อมกันจะเลือกรวมจุดที่อยู่มุมทแยงจากตาแหน่งกลางอีก 4 จุดด้วย

รูปที่ 22 อักษรตำแหน่งจุดภาพ

ดังรูปที่ 22 กำหนดให้ p (pixel) แทนจุดภาพที่กาลังพิจารณา u แทนจุดภาพที่อยู่ตำแหน่งเหนือจุด p l แทนจุดภาพที่อยู่ตำแหน่งซ้ายของจุด p จะเริ่มทาจากซ้ายไปขวาและบนลงล่าง จากนั้นทาการกำหนดเลขหมายตามขั้นตอนดังนี้

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

รูปที่ 23 ตัวอย่างจุดภาพและตำแหน่ง

สี่เหลี่ยมที่เล็กที่สุดในการปิดล้อมวัตถุ (Minimum bounding box)
คือกล่องสี่เหลี่ยมที่เล็กที่สุดสาหรับปิดล้อมรอบบริเวณนั้นๆ หรือบริเวณที่ถูกกำหนดหมายเลข ซึ่งกล่องสี่เหลี่ยมนี้จะช่วยในการคำนวณจุดศูนย์กลาง พื้นที่ ความยาวแกนเอก-แกนโท จุดพิกัด ฯ ของบริเวณหรือวัตถุในภาพที่สนใจ โดยจากรูปที่ 24 จะแสดงแนวความคิดการสร้างกรอบภาพที่เล็กที่สุดนี้ โดยรูป 24(a) คือภาพวัตถุสีขาว-ดา ส่วนในรูปที่ 24(b) คือขอบและจุดศูนย์กลาง (Centroid) ของวัตถุ ต่อจากนั้นจะมีการหาแกนเอกและแกนโทของวัตถุดังรูปที่ 24(c) จากนั้นจะมีการหาจุดที่มีระยะห่างจากจุดศูนย์กลางวัตถุถึงขอบวัตถุที่ยาวที่สุดโดยพิจารณาจากส่วนด้านบนของแกนเอกและส่วนล่างของแกนเอก (A และ B) รวมทั้งการหาจุดที่มีระยะห่างจากจุดศูนย์กลางวัตถุถึงขอบวัตถุที่ยาวที่สุดโดยพิจารณาจากบริเวณส่วนซ้ายของแกนโทและส่วนขวาของแกนโท(C และ D) สุดท้ายก็จะได้จุดพิกัดในการสร้างกล่องสี่เหลี่ยมที่เล็กที่สุดในการปิดล้อมวัตถุ (Minimum bounding box) นั้น


รูปที่ 24 แนวความคิดการสร้างสี่เหลี่ยมที่เล็กที่สุดในการปิดล้อมวัตถุ

Clc,
clear all,

circles = imread('D:/circles.bmp');
circles1 = circles;
[r c] = size(circles1);

for i = 1:r
    for j = 1:c
        if (circles1(i,j) >= 125 && circles1(i,j) <= 195)
            circles1(i,j) = 255;
        else
            circles1(i,j) = 0;
        end
    end
end

figure, imshow(circles),pixval on
 figure, imshow(circles1),pixval on

circles2 = imfill(circles1,'holes');

 %% Label and count connected components

[L Ne]=bwlabel(double(circles2));

Comments

Popular Posts