2008年10月24日 星期五

ch3

3.2
c=imread(‘xxx.tif’);
Image(c)
這兩條程式似乎只適用於灰階或黑白照片上面,用在彩色照片上沒啥效果,可能有些微差別,但是我看不出來,至於為啥用在彩色上會沒效果,我…不清楚…
Image(c),truesize,axis off,colormap(gray(x)) 如果你的圖gray的值是247的話,那你輸入比他大的數就會比較暗,反之輸入比較小當然就比較亮,但是如果用在彩色圖片上,他是完全不會有用的,因為colormap(gray(x))是gray only….
3.3
c=imread('caribou.tif');
cd=double(c);
imshow(c),figure,imshow(cd)
這程式打出來後,那張鹿圖就變白了,為什麼呢,因為他被double了,就這麼簡單,開玩笑的,因為double的值介於0到1之間,所以如果圖片裡的值大於1的話,就會被當成1來顯示,小於0的話就會以0來顯示,由於這張圖的值都大於1所以全部顯示1,整張圖就變白了,如果把那張圖的陣列除以255,這樣所有的值都會介於0到1之間,這張圖就變回原來的樣子了,除以512的話數值變小會變暗,除以128數值變大會變亮
cd=im2double(c)就是先把他變double之後再除以255,也就是double要做兩次他一次就做完了
uint8(255*cd),imuint8(cd)這兩個是把上面兩個轉回來
c1 256x256 524288 double 喔YA!!我的C1跟我室友一樣,跑出來都是跟課本不一樣的值,是我沒把圖片轉回uint8嗎,不過我重弄一次好像也是這樣,不知道是啥原因??
3.4
c0=mod(cd,2);c0的圖是最不明顯的,c1開始慢慢有東西,之後到c7是最明顯的圖,之後神奇的來了,把全部圖在加在一起,他就變回原來的圖啦!!!!真神奇,不過這有啥意義….還有是他為啥知道只要做到C7就是最明顯的圖,要是還有C8呢?
3.5
似乎是在講馬賽克,我又跟課本弄出來的不太一樣,課本上明明就弄出一格一格,我的卻有點朦朧美,要比較近看才會看出一格一格的
3.6
(Grayslice(x,h1),gray(h2))讓圖量子化,嗯….量子化,根本不知道是啥啊!!!!!弄了一下,裡面的值好像是代表陣列裡的最大值減一,如果是128那圖裡的值最大好像就是127,如果是2那最大好像就是1,所以弄到最後那張newborn就會變黑白的,但是如果這功能用在彩色圖上,就只會慢慢變黑而已,想說課本上都是試一樣的值,如果我兩個打不一樣會怎樣,事實證明了,如果h1>h2,圖會變比較白,反之,圖當然就會變比較黑拉

沒有留言:

張貼留言