2008年10月16日 星期四

第二章心得

第二章主要在敘說一張圖像如何在matlab作處理,例如:怎麼讀取圖片,show圖片,轉其他不同的格式..等。

比較常見的格式有:
(1)灰階影像:它是用uint8 (8 bits),也是就2的8次方範圍0-255來顯示圖像的亮度,0對應於黑色和白色255。

(2)二值圖像:這種圖像文件格式在市面上的影印店家很常見,他們把它當作基質,但只能彩色像素黑色或白色(沒有之間)。他指定黑色0和白色1。

(3)收錄圖片(索引式彩色影像):像課本第25頁下面的>>figure,imshow('emu.tif'),pixval on。
emu.tif 其中包含了兩個矩陣:第一個矩陣是指色譜(color map),第二個矩陣是指是色譜的索引(index) 。

(4)三原色形象: 這是另一種形式的彩色圖像。它代表的形象有三個矩陣的大小相匹配的圖像文件格式。每個矩陣對應一個顏色紅,綠或藍色,並給出了一個指示,有多少這些顏色一定要使用像素,例:Page 24 >> a(100,200,2)。

現在只會show出彩圖和灰階圖而已,至於彩圖轉灰階或灰階轉彩圖還不會,好像要用到矩陣,自己試了一下還是show不出來。

下面程式碼是show彩色圖像:

>> IM=imread('C:\Documents and Settings\Administrator\桌面\star.JPG');
>> imwrite(IM,'C:\Documents and Settings\Administrator\桌面\star.JPG','JPG');
>> imshow(IM);

我把JPG格式改成其他模式都跑出灰階的圖像,例如:bmp,TIFF..等等。
不知道為什麼會這樣,bmp跑出灰階就算了,TIFF檔還是彩色圖,但show出來卻是灰階的。
我想 TIFF檔雖然是彩圖,但還是屬於uint8吧!!

程式結果:



















要叫出這張圖需要寫圖片的路徑才能執行,程式碼看起來就很冗長,好像可以在matlab裡的”圖像工具”可以放自己喜歡的照片,就不用找圖的路徑了,程式碼也不能那麼冗長,但我怎都找不到圖像工具在哪??

課本第34頁的表格,他所擷取的四個數值是隨便取連在一起的四串嗎?
像課本所擷取的00 00 42 00然後再由低位元到高位元排列

00 00 42 00=>算出數值66(width)
同理:00 00 1F 00=>31(height)
一張圖:(高)31*(寬)66

那我擷取00 00 C4 0E=>4036(width)
00 00 C4 0E=>4036(height)
圖(size)=(高)4036*(寬)4036嗎?

1 則留言:

  1. 彩圖轉灰階或灰階轉彩圖還不會,好像要用到矩陣,自己試了一下還是show不出來。

    參考p.29的函數
    ==================================
    >> IM=imread('C:\Documents and Settings\Administrator\桌面\star.JPG');

    檔名可以不用給的這麼長...
    把圖片放至【C:\Documents and Settings\使用者ID\My Documents\MATLAB】底下,即可在MATLAB左上角的 Currcent Directory 視窗中看到檔案
    然後檔名參數就可以很簡化了
    ex:IM=imread('star.JPG');
    ==================================
    課本第34頁的表格,他所擷取的四個數值是隨便取連在一起的四串嗎?

    課本上有寫,寬要取第18-21個位元,
    長要取第22-25個

    表格中的18-21是→00 42 00 00
    要反置過來看才會是 00 00 42 00
    同理,表格中的22-25是→00 1F 00 00
    要反置過來看才會是 00 00 1F 00

    所以你的圖片長寬要重新取數值才會得到正確的

    回覆刪除