ค้นหาข้อมูลในบล็อก (Search in this blog)

Wednesday, August 28, 2013

การหาค่าสถิติเบื้องต้นของข้อมูลภาพด้วย Matlab



วันนี้จะขออนุญาตนำเสนอวิธีการเรียกใช้งานฟังก์ชันพื้นฐานที่อาจจะเป็นเรื่องง่ายมากๆสำหรับท่านที่เคยใช้งาน Matlab เป้นประจำแต่สำหรับผมนานๆใช้ทีเลยต้องบันทึกไว้กันลืมสักหน่อย (-_-)" ตัวอย่างการคำนวนหาค่าสถิติเบื้องต้นที่จะทดลองใช้งานในครั้งนี้ได้แก่ค่า Maximum, Minimum, Mean/Average และ Standard Deviation เป็นต้นครับ
การประมวลผลข้อมูลภาพนั้นเจ้า Matlab จะมองข้อมูลภาพและค่าของจุดภาพในรูปของเมทิรกซ์ (Matrix) โดยขนาดของเมทริกซ์จะเท่ากับขนาดของข้อมูลภาพ เช่น ข้อมูลภาพหนึ่งมีขนาด 100 x 100 จุดภาพ จำนวน 4 ช่วงคลื่น (band) นั้นเมื่อนำข้อมูลภาพเหล่านี้เข้าสู่โปรแกรม Matlab แล้ว โปรแกรมจะทำการแปลงข้อมูลให้อยู่ในรูปของเมทริกซ์ที่มีขนาดและมิติเท่ากับข้อมูลต้นฉบับ โดยค่าของจุดภาพ  (Pixel values/Brightness values - BV/Digital Number - DN) จะถือว่าเป็นสมาชิกของเมทริกซ์ที่มีตำแหน่ง (ลำดับ) เหมือนข้อมมูลภาพครับ
 
ตัวอย่างการนำเข้าข้อมูลภาพเพื่อการวิเคราะห์และประมวลผลภาพด้วย Matlab นั้นสามารถทำได้โดยใช้ฟังก์ชัน imread ดังตัวอย่างดังนี้

การแปลงข้อมูลภาพให้เป็นเมทริกซ์
##############################
>>imred('C:\images\theos.tif')                   % หรือ
>>imred('C:\images\theos.tif');                  % หรือ
>>theos = ('C:\images\theos.tif');


การหาขนาดของข้อมูลภาพหรือเมทริกซ์ สามารถทำได้โดยใช้คำสั่ง size ดังตัวอย่าง
##############################
>>size(theos)
ans =

        1500        1500           4                 
%
ขนาดของเมทริกซ์คือ row, column, band ตามลำดับครับ

 ส่วนการเปลี่ยนข้อมูลภาพให้เป็นเมทริกซ์แบบแยกช่วงคลื่นสามารถทำได้ดังนี้
##############################
band1 = theos(:,:,1);
band2 = theos(:,:,2);
band3 = theos(:,:,3);
band4 = theos(:,:,4);                                
%
ตรงนี้ต้องระวังการเรียงลำดัของช่วงคลื่นนะครับ

ใน Matlab นั้นมีฟังก์ชันการคำนวณสถิติพื้นฐานไว้ให้อยู่แล้วนะครับ เราสามารถเรียกใช้งานได้ดังตัวอย่างครับ
ค่า Maximum ค่า Minimum
##############################
>>max(max(band1))
>>max(band1(:))                                  
%
การใช้ band1(:) นั้นจะใช้เมื่อต้องการหาค่าของเมทริกซ์ทั้งทาง row และ column ครับ
>>min(band1(:));

ค่า Mean/Average
##############################
>>mean2(band1)                                      
%
ฟังก์ชัน mean2 สามารถใช้ได้กับเมทริกซ์ 2 มิติครับ

ค่า Standard Deviation
##############################
>>std2(band1)                                          
%
ฟังก์ชัน std2 สามารถใช้ได้กับเมทริกซ์ 2 มิติครับ


ครั้งหน้าถ้าว่างๆจะขอแนะนำวิธีการประมวลผลภาพเบื้องต้นครับ