Page 158 -
P. 158
โครงการหนังสืออิเล็กทรอนิกส์ เฉลิมพระเกียรติสมเด็จพระเทพรัตนราชสุดาฯ สยามบรมราชกุมารี
149
5.5 การหมุนภาพดวยคําสั่ง MATLAB
เราสามารถหมุนภาพ A ดวยคําสั่ง MATLAB ดังตอไปนี้
B = imrotate(A, angle, ‘method’)
คําสั่งนี้จะหมุนภาพ A ไปเปนมุม angle องศารอบจุดกําเนิด โดยจะหมุนในทิศทวน
เข็มนาฬิกาถาคา angle เปนบวก และจะหมุนในทิศตามเข็มนาฬิกาถาคา angle มีคา
เปนลบ โดยเราสามารถระบุวิธีที่ใชประมาณคาความสวางของจุดภาพไดผานตัวแปร
method ในกรณีที่ไมไดกําหนดคา method โปรแกรมจะทําการประมาณคาความสวาง
ของภาพดวยวิธี nearest neighborhood ตัวอยางเชน เมื่อตองการหมุนภาพ 5.6(ง) ใน
ทิศทวนเข็มนาฬิกาเปนมุม 45 องศา และเลือกการประมาณคาแบบ bi-cubic คําสั่ง
MATLAB ที่ใชเปนดังตอไปนี้
>> A = imread(‘sying.jpg');
>> B = imrotate(A,45, 'bicubic');figure, imshow(B);
ผลลัพธที่ไดจากการรันคําสั่งขางตนแสดงในรูปที่ 5.8(ก) ภาพที่ไดจะมีขนาดใหญ
กวาภาพตนฉบับเพื่อใหสามารถเก็บจุดภาพทั้งหมดหลังการหมุนได ในกรณีที่เรา
ตองการใหภาพผลลัพธที่ไดมีขนาดภาพเทากับภาพตนฉบับ เราสามารถทําไดโดย
เพิ่มพารามิเตอร bbox เขาไปในคําสั่ง imrotate(.) ตามรูปแบบการใชงานคําสั่งดังนี้
B = imrotate(A, angle, ‘method’, ‘bbox’)
โดยสามารถระบุคา bbox ไดสองคา คือ ‘loose’ และ ‘crop’ คา ‘loose’ จะใหภาพ
ผลลัพธที่มีขนาดใหญที่สุดที่สามารถเก็บภาพหลังการหมุนได สวนคา ‘crop’ จะให
ภาพผลลัพธภาพหลังการหมุนเทากับภาพตนฉบับ รูปที่ 5.8(ข) แสดงผลลัพธที่ได
หลังการ crop ภาพที่หมุนภาพไป -45 องศา คําสั่ง MATLAB ที่ใชเปนดังนี้