顯示具有 94360743 陳威志 標籤的文章。 顯示所有文章
顯示具有 94360743 陳威志 標籤的文章。 顯示所有文章

2008年1月10日 星期四

自我評分

回顧了整個學期

說不上很認真很認真

但是該有的進度還是有

這學期學到很多

像是利用MATLAB在微積分上

真的很方便

也加深了我的印象

經過了一套公式計算0.0

像是每周固定的作業、互評那次、出缺席.....等等

自己給自己打~~82分

2008年1月3日 星期四

評分準則

講到對這門上課的熱忱,我覺得那次大家互評,大家好像都蠻認真的
應該是發文最踴躍的一週。

每週的進度有達到自己心中的目標,不一定要多,但能運用是最好的。

2007年12月20日 星期四

Week14 Ch_7 THE FOURIER TRANSFORM



(1)更改掉錯誤了~跟課本一樣!
(2)課本裡的fft2二維離散傅立葉轉換,我試過課本裡的幾個例子,但是就是弄不懂裡面的值怎麼產生的? 如果是fft衍伸過來的算法,那是怎麼算的,因為在7-5那講的Two-Dimensional DFT就看的有點模糊了。 fft2(X) can be simply computed as fft(fft(X).').' 他意思是不是說二維傅立葉轉換為先對行或列進行一維傅立葉轉換後,再對列或行進行一維傅立葉轉換的結果。











心得: 因為在二維那邊就卡住了,後面我看了一下,還頗有關係的,目前繼續了解它中....@@

2007年11月28日 星期三

Week11-Chapter 6

課本Page122~Page125 綜合6.1和6.2小節,在nearest和bilinear比較上,跟個課本做實作,

head4n=imresize(head,4,'nearest');imshow(head4n),figure,head4b=imresize(head,4,'bilinear');imshow(head4b)



圖為nearest neighbor





圖為bicubic
由圖推判得知用nearest內插法誤差大於用bilinear內插法,可是我不知道,bilinear取鄰近四點,裡面的運算是?

6.3小節提到了bicubic內插法,實作後,會覺得bicubic的圖比bilinear的圖更平順!我的感覺點是連續的,不會斷斷續續。
6.5小節Page133的Figure6.18 (b)就顯得比較平順和清楚不過在實作時,不懂這兩行怎麼運算
>> t=((255.5)^2<(i-512).^2+(j-512).^2)&((i-512).^2+(j-512).^2<(256.5)^2);
>> t=~t

Week11-期中報告

學習心得:
從第一次接觸MATLAB到現在,已經有11周了,雖然每次學習都帶著有點困惑,每一章都會有卡卡的地方,起出可能是英文翻譯比較吃力,但是後來也就慢慢習慣,習慣後,閱讀就比較上手,在加上配合課本的實作,就能更清楚課本在講什麼。另外,在有幾週是把一個章節看過兩次,第二次讀起來,就能夠發覺更細的問題所在。

我要加強地方:其實每次都會小偷懶到前兩天,才開始看課本@@,不是每天都看那種人。雖然進度有趕上,但是就是沒有很詳細從頭到尾去仔細閱讀,所以這是我要改善的地方。

不錯的地方:
這堂課,促使我們第一次看原文書那麼仔細,提升我們不少的英文能力。至於自己,每個禮拜作業準時繳交(這不是應該的嗎@@?)

老師要加強地方:
好像沒有@@

給自己打分數:
[80]

2007年11月8日 星期四

Week8 Chapter 5

(Q1.) p.94 5.3小節的 Y = FILTER2(B,X,'shape')
其中在第三個參數填入same跟shape一樣,填入full會把整個matrix填滿,
但我不知道為什麼填入valid他會產生那樣的值,不太懂它的運算方法。

(Q2)5.4、5.5小節我的整理,
low-pass filter廣義來說是使影像輪廓較柔和而模糊 ,而High-pass filter主要用來使凸顯圖片細微的部分,使影像輪廓較尖銳而清晰。

(針對low-pass filter)
對一維的Gaussian filter來說,σ是標準誤差,σ愈大,濾波效果愈明顯。
對二維的Gaussian filter來說,σ是Gaussian function 的標準誤差。
Gaussian filter它沒有方向性。
Page102的第3點最後一行 This can lead to very fast implementation。
它是說它的計算效率較快?還是?

這禮拜我只看到5.5小節 ,後面會陸續補上來的。

2007年11月1日 星期四

Week 7 重讀Chapter 4

閱讀心得:

Point processing 是只針對單點作處理,而不考慮其他點和統計特性,原因是簡單化~

但是它可以透過一些function或是公式,來達到目的。

像是image negative,通常用於在黑暗的影像中加強白色或灰色的部分。

而這章重點是在4-3節的Histograms:

如圖histogram 整體偏左,所以圖形偏暗



如圖histogram 整體偏右,所以圖形偏亮







所以,理想的圖片的Histogram應該分佈較為平均。
而Histogram Equalization就是要得到分佈較為平均的影像。


問題來了:
1.如果我把一張圖的像素,做Random排列(老實說,我不知道怎麼去Random它~XD),它的Histogram會改變嗎?照理講,會不會有些地方偏暗,有些地方偏亮呢?


另外 4.4的Lookup Tables
(1.) give an output value for each of a range of index values
(2.)One common LUT, called the colormap or palette
因為Matlab的矩陣是從1開始,所以執行不出來。
而在課本的Page.83.
 >>t1=0.6667*[0:64]; 
>>t2=2*[65:160]-128; 
>>t3=0..6632*[161:255]+85.8947; 
>>T=uint8(floor([t1 t2 t3]));
產生了一個新Table,照課本解釋是讓使用者修改圖時,針對這個Table去改變,不過我不知道它為何公式是這樣算?


重讀之後的心得:
在上個禮拜,課堂上著重在4.2節,這次在看一次第四章之後,重心放在4.3節、4.4節,
再看一次之後,有了更深一步的了解。
Point Processing顧名思義就是......引用小溫的話:藉由改變整張圖片的點的值來達到改變圖片的目的!!http://hwshow-ipc.blogspot.com/2007/10/week6-ch4-point-processing_25.html

2007年10月24日 星期三

Week6 Point Processing

(1.)課本Page 74


以課本th=imadjust(t,[],[],0.5)

0.5是亮度的係數(越高越暗)

這樣的話a,b,c,d都是空的,算出來是??

我有點不了解。





th=imadjust(t,[LOW_IN; HIGH_IN],[LOW_OUT; HIGH_OUT],GAMMA)


課堂討論:
對於Point Processing
Arithmetic Operations 無意是對image matrix作處理,利用一些運算子。
可以增加亮度或暗度,或是取補數 等等之類的~

2007年10月18日 星期四

Wee5 Chapter 3 Sec.6 Quantization and Dithering






以影像中的一個pixel而言,轉變至新的色盤索引值,在新舊色點上的色彩必定有所差異,一般的彌補方式,大都採用Error Diffusion。



而Floyd-Steinberg、Stucki和Jarvis-Judice-Ninke主要不同是誤差擴散的範圍與比例。


以課本59頁當例子:


- x 7


3 5 1


x表示目前的處理點。當該處理點找到最接近色時,便將該點顏色與最接近色顏色的誤差值,以7/16、3/16、5/16、1/16比例擴散到鄰近的點。


Floyd-Steinberg的抖色方法快速而且效果不錯。另外Stucki使用了更多的點參與誤差擴散,以得到更好的效果。不過當誤差擴散的範圍變大, 需進行大量的整數除法和乘法的運算,導致處理的速度會變慢,因此對於較大的影像而言,一般很少採用這個方法。


最後Jarvis-Judice-Ninke和Stucki沒太大不同,主要是在影像不同情況下,就能比較出他們的差異性和優缺點。 不過Floyd-Steinberg應該是相當常用的抖色方法吧!


2007年10月10日 星期三

Week4-Image Display

(1.)課本Page 48 我將灰階影像轉為double的型態,然後做餘數找出最後位元時,最後出來的值是0,和課本不太一樣。
>> c=imread('cameraman.tif');
>> cd=double(c);
>> c0=mod(cd,2);
>> c1=mod(floor(cd)/2,2);
>> c2=mod(floor(cd)/4,2);
>> c3=mod(floor(cd)/8,2);
>> c4=mod(floor(cd)/16,2);
>> c5=mod(floor(cd)/32,2);
>> c6=mod(floor(cd)/64,2);
>> c7=mod(floor(cd)/128,2);
>> ct=c>127;
>> all(c7(:)==ct(:))
ans =
0

另外為什麼在ct=c>127,take cameraman matrix and create a new matrix (ct),它的c>127表達什麼意思?

(2.)課本Page 49
>>all(c7(:)==ct(:)) 不懂為何指令這樣寫,我用help查過all的指令用法,但是還是看不懂。

2007年10月3日 星期三

Week3-Images & MatLab

1.(page 34)就是在Command Window打入dumphex('blocksets.bmp',4)指令之後,
會Show出hexadecimal dump function如下
42 4D 6E 18 00 00 00 00 00 00 36 00 00 00 28 00 BMn.......6...(.
00 00 42 00 00 00 1F 00 00 00 01 00 18 00 00 00 ..B.............
00 00 38 18 00 00 C4 0E 00 00 C4 0E 00 00 00 00 ..8.............
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

除了寬度、高度(像素位單位)以外,還可以知道哪些?
如果要從裡面看,要怎麼判斷呢??

2.我將灰階和彩色各一圖片合併起來時,要imread時,出現下列錯誤:
>> a=imread('123.tif');
Warning: RGB image has 4 (not 3) samples per pixel.
為什麼呢?

2007年9月27日 星期四

WeeK2:Getting Started

這是我無意間發現的問題,就是我在使用雙螢幕時,當成是畫面從一個螢幕拉到另外一個螢幕時
在Command Window就會出現下列程式碼

Exception un thread "AWT-EventQueue-0"java.lang.ArrayIndexOitOfBoundsException:1
at sun.awt.window.WWindowPeer.updateGC(Unknown Source)
at sun.awt.window.WWindowPeer.displayChanged(Unknown Source)
at sun.awt.window.WWindowPeer$1.run(Unknown Source)
at sun.awt.event.InvocationEvent.dispatch(Unknown Source)
at sun.awt.EventQueue.dispatchEvent(Unknown Source)
at sun.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at sun.awt.EventDispatchThread.pumpEventForHierarchy(Unknown Source)
at sun.awt.EventDispatchThread.pumpEvents(Unknown Source)
at sun.awt.EventDispatchThread.pumpEvents(Unknown Source)
at sun.awt.EventDispatchThread.pumpEvents.run(Unknown Source)