305434 305434 DIGITAL IMAGE PROCESSING Matrix
305434 305434 DIGITAL IMAGE PROCESSING Matrix
305434 305434 DIGITAL IMAGE PROCESSING Matrix
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
06/09/56<br />
1<br />
<strong>305434</strong><br />
Digital Image Processing<br />
Lab02: Digital Images<br />
<strong>Matrix</strong>
06/09/56<br />
2<br />
การใช้ MATLAB เบื องต้น<br />
• การกําหนดค่าให้กับ matrix อาจจะกําหนดค่าโดยตรง เช่น<br />
กําหนดค่าให้กับ matrix d ให้ลองพิมพ์<br />
d = [ 1 2 3; 4 5 6; 7 8 9 ];<br />
แล้ว enter จากนั นให้ดูผลลัพธ์ทีได้<br />
• จะสังเกตเห็นว่าเครืองหมาย ; ใช้ในการคันระหว่างแถว<br />
• สามารถกําหนดค่าให้กับ matrix แบบอัตโนมัติได้ ซึงมีหลาย<br />
วิธี เช่น<br />
– ใช้รูปแบบ first:increment:last<br />
– ใช้ function ใน Matlab<br />
– ใช้ loop<br />
– ใช้การรับค่ามาจากไฟล์
06/09/56<br />
3<br />
รูปแบบ first:increment:last<br />
• เช่นให้ลองพิมพ์<br />
x = 1:2:10<br />
แล้ว enter จากนั นให้ดูผลลัพธ์ทีได้<br />
function ใน Matlab<br />
• เช่นให้ลองพิมพ์<br />
m = 5; n = 10; a = zeros(m, n);<br />
แล้ว enter จากนั นให้ดูผลลัพธ์ทีได้<br />
Note: เป็นการกําหนด matrix a ให้มีขนาด m x m โดยมีสมาชิก<br />
เป็น 0 ทังหมด ประโยชน์คือเป็นการกําหนด matrix โดยมีค่าเริมต้น<br />
เป็น 0 ทังหมด
06/09/56<br />
4<br />
• การดูค่าของสมาชิกแต่ละตัว ใช้รูปแบบ<br />
ชื อของmatrix (row, column)<br />
โดย row คือแถวทีต้องการดู และ column คือ คอลัมน์ทีต้องการดู<br />
• เช่นให้ลองพิมพ์<br />
d(1, 1);<br />
แล้ว enter จากนันให้ดูผลลัพธ์ทีได้<br />
Note: index ใน matlab เริ มจาก 1<br />
• การดูค่าของสมาชิกแต่ละแถว ใช้รูปแบบ<br />
ชื อของmatrix (row, :)<br />
โดย row คือแถวทีต้องการดู<br />
• เช่นให้ลองพิมพ์<br />
d(1, :);<br />
แล้ว enter จากนันให้ดูผลลัพธ์ทีได้
06/09/56<br />
5<br />
• การดูค่าของสมาชิกแต่ละคอลัมน์ ใช้รูปแบบ<br />
ชื อของmatrix (:, column)<br />
โดย column คือคอลัมน์ทีต้องการดู<br />
• เช่นให้ลองพิมพ์<br />
d(:, 1);<br />
แล้ว enter จากนันให้ดูผลลัพธ์ทีได้<br />
• ให้ดําเนินการดังต่อไปนี แล้วให้ดูผลลัพธ์ทีได้ของแต่ละคําสัง<br />
– พิมพ์ img = zeros(15)<br />
– พิมพ์ img(5:10,4:7) = 255<br />
– พิมพ์ imshow(img);<br />
– พิมพ์ img(8:12,5:12) = 128<br />
– พิมพ์ imshow(img);
06/09/56<br />
6<br />
– พิมพ์ img2 = rand(6)<br />
– พิมพ์ img3 = round(rand(6)*100)<br />
– พิมพ์ max(img3)<br />
– พิมพ์ max(max(img3))<br />
– พิมพ์ min(img3)<br />
– พิมพ์ min(min(img3))<br />
– พิมพ์ sum(img3)<br />
– พิมพ์ sum(sum(img3))<br />
• ให้หา file ภาพ (TIFF, JPEG, GIF, BMP, PNG) จาก<br />
internet แล้วอ่านเข้ามาใน matlab โดยใช้คําสัง imread<br />
เช่น<br />
img4 = imread(‘example.jpg’);<br />
ถ้า file อยู ่ที current directory หรือ<br />
img4 = imread(‘D:\imagepro\example.jpg’);<br />
เป็นแบบเต็ม
06/09/56<br />
7<br />
• หมายเหตุ รูปแบบของภาพทีสามารถอ่านเข้ามาใน matlab ได้เช่น<br />
ชื อรูปแบบ คําอธิบาย นามสกุล<br />
TIFF<br />
Tagged Image File Format .tif, .tiff<br />
JPEG Joint Photographic .jpg, .jpeg<br />
Experts Group<br />
GIF Graphics Interchange .gif<br />
Format<br />
BMP Windows Bitmap .bmp<br />
PNG<br />
Portable Network<br />
Graphics<br />
.png<br />
– ถ้ามี image อืนต้องการแสดงโดยไม่ทับกับภาพเดิม อาจจะกําหนด<br />
รูปขึ นมาใหม่ก่อนโดยใช้คําสัง figure<br />
– ให้พิมพ์ imshow(img4);<br />
– ให้พิมพ์<br />
size(img4)<br />
จะแสดงขนาดของ image<br />
– ในการเก็บขนาดของ image ในรูปของตัวแปร อาจใช้คําสัง<br />
[m n] = size(img4);<br />
ซึง m จะเก็บจํานวนแถว และ n จะเก็บจํานวนคอลัมน์
06/09/56<br />
8<br />
– ให้ลองพิมพ์<br />
whos img4<br />
จะแสดงขนาดและชนิดของ img4<br />
– ถ้าภาพทีอ่านเข้ามาเป็นภาพสี แล้วจะทําให้เป็นภาพระดับเทา ให้<br />
พิมพ์ img5 = rgb2gray(img4);<br />
– ให้พิมพ์ imshow(img5);<br />
– ให้พิมพ์ size(img5)<br />
• ให้พิมพ์<br />
img6 = imresize(img5, [30 30]);<br />
จะเปลียนขนาดของ image ให้มีขนาด 30x30<br />
• ให้ลองเปลียนขนาดของ image เป็นแบบอืนเช่น<br />
img7 = imresize(img5, 0.25);<br />
จะลดขนาดของ img5 ลดเหลือหนึงในสีของภาพเดิม ลองพิมพ์<br />
whos ดู
06/09/56<br />
9<br />
• ในการ write image เป็ น file ในใช้คําสังในรูปแบบ<br />
imwrite(f, ‘filename’);<br />
– เช่น imwrite(img5, ‘grayimage.jpg’);<br />
– ให้ดูการใช้ imwrite เพิมเติม<br />
1. ให้เขียนโปรแกรมอ่านภาพหนึ งภาพ ถ้าเป็ นภาพสีให้แปลง<br />
เป็ นภาพระดับเทาแล้วแบ่งเป็ นส่วน ๆ ดังภาพด้านซ้ายล่าง ให้<br />
ทําการสลับที ให้เป็ นรูปแบบด้านขวาล่าง จากนันให้ show<br />
image แล้ว save เป็ น file jpg
06/09/56<br />
10<br />
2. ให้เขียนโปรแกรมอ่านภาพหนึ งภาพ ถ้าเป็ นภาพสีให้แปลง<br />
เป็ นภาพระดับเทาแล้วกลับภาพจากซ้ายไปขวา<br />
3. ให้เขียนโปรแกรมอ่านภาพหนึ งภาพ ถ้าเป็ นภาพสีให้แปลง<br />
เป็ นภาพระดับเทาแล้วกลับภาพจากบนลงล่าง