25.10.2014 Views

305434 305434 DIGITAL IMAGE PROCESSING Matrix

305434 305434 DIGITAL IMAGE PROCESSING Matrix

305434 305434 DIGITAL IMAGE PROCESSING Matrix

SHOW MORE
SHOW LESS

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 />

เป็ นภาพระดับเทาแล้วกลับภาพจากบนลงล่าง

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!