2008年12月25日 星期四
期末回顧
week11,ch4 8A 7B 86分
week13,ch5 12A 4B 94分
week16,ch6 76分
期末平均: 85分
自己給自己9分
最後 還沒加上老師給的10分
88*40%+85*40%+9=78分
每一篇都有自己看過或查資料,
雖然都不是很仔細看過,
不過基本的指令都有了解。
時間真的過得好快,已經到了期末了,
得到了好多收穫,也慢慢習慣讀原文書。
三年級的課相對於很重,每天都有很多事
要做,但這門課上課的方式,是三年級課
當中上課輕鬆學,而且也可以得到很多
資訊和學到很多。
而MATLAB對於以後的學習會有幫助,
也有了解到MATLAB的強大功能,希望自己
以後會使用和運用,最後也謝謝老師的教導。
2008年12月18日 星期四
ch6
6-1 Interpolation of Data
Interpolation是內插法的意思,而從Figure6.1得知
原本每個點為1所以長度為3,後來增加為八點,每
兩點之間長度為3/7約是0.4286。
nearest-neighbor interpolation是取鄰近的像素來填
補因放大比例所產生的空白處。
linear interpolation將新取樣點前後想鄰兩原取樣點
連線,連線通過新取樣點時間位置時的值即設為新
取樣點的值。以Figure6-4來說,原本有4個點
f(x1)f(x2)f(x3)f(x4)先連成線,在加入新的點
x2' x3' x4'x5' x6' x7'再對上原本的線取值。
6-2 Image Interpolation
Bilinear interpolation是利用內插法,去計算影像
放大後其中每一個像素所對應到的新的位置,再補進去。
指令 resize(A,k,'method')是將圖片陣列A使用scaling factor k
與nearest-neighbor interpolation方法resize。
最後由Figure6.9知,nearest-neighbor方塊格很清楚,
而Bilinear interpolation沒有方塊格。
6-3 General Interpolation
這部分有舉出不同的R(u)函數,有nearest-neighbor 、
cubic interpolation、bilinear interpolation。
不過這部分只有很淺淺的看過。
Bicubic interpolation,有上網查一下意思,是可以明顯
改善邊緣鋸齒化之缺陷,但影像呈現失焦之狀況。
6-4 Enlargement by Spatial Filtering
是說如果我們要把圖放大兩倍,有一個quick and dirty方法,
第一步zero-interleaved,在原陣列的行列之間加零,
再來就不清楚了不太懂了。
6-5 Scaling Smaller
image minimization是讓image變小。有一種方式刪除間隔pixels,稱為subsampling。
但是在high-frequency components 的image所呈現的結果不好。
6-6 Rotation
將圖片做旋轉,
指令imrotate(image,angle,'method')image以angle(角度)可以做nearest、bilinear、bicubic。
6-7 Anamorphosis
字典所查到的意思:失真圖像(歪像)。
在古代把物體畫成變形的圖案,透過特殊鏡片或角度才能看到原貌的繪圖技術。
第六章的部分,只有大略的讀過一遍,許多細節和公式並沒有很深入的去讀。
2008年12月4日 星期四
ch5
一開始讀第五章有大略看過覺得好難,
所以有先從圖片和課文中的粗體字先看或上網查資料,
這樣就有比較好懂,不過也只是先寫會的部分。
5-1
原本只知道在講結合mask和function稱為filter(影像濾波)、
linear filter(是對影像進行模糊化亦可達到去除雜訊的效果),
而在課本的Figure5.1 可以了解,之後的Figure5.2又清楚的
知道整個流程。
Spatial filtering(空間濾波器 ) 需要的三步驟:
1.mask位置在current pixel上。
2.所有filter的乘積值符合neighborhood
3.加總所有值。
spatial filtering與spatial convolution(空間迴旋運算)是同類,
而spatial convolution處理數位影像之空間頻域特性。
指令 magic(5)為5x5的矩陣,裡頭的數字是從1到25不會重複,
而且各行、各列和對角線的和都相等。真的好神奇。
mean2(x(1:3,2:4))是矩陣x的第一列到第三列和第二列到第四列的平均值。
5-2
Ignore the edges:忽略邊緣,結果顯示的圖會比原來小。
Pad with zero:忽略邊緣的值,都填零。
5-3
這小節的指令有用到5-1、5-2,
filter2(filter,image,shape) -->是在做liner filtering.
filter2(filter,image,'same') -->是 use zero padding.
filter2(filter,image,'valid') -->結果影像會比原本的小.
filter2(filter,image,'valid') -->結果影像會比原本的大.
zeros(7,7) 為7x7的零矩陣.
fspecial('average',[5,7]) 為一個5x7的average filter.
5-4
frequencies: 測量因距離改變的灰階值。
High-frequency components:短距離而灰階直有很大的改變。
相反的,Low -frequency components:長距離而灰階直有很小的改變。
high-pass filter:忽略High-frequency components和減少或消除Low -frequency components。
low-pass filter:忽略Low -frequency components和減少或消除High-frequency components。
Make negative values positive:完全處理負數值,不處理大於255,因此只能使用在特殊情況。
Clip values:x值經由filter得到y值,而且不適用於超過255。
5-5
Gaussion Filters是low-pass filter的一類,以下是重要理由:1.在數學好的表現,特別是Gaussion Filter的Fourier transform,也是另一個Gaussion。2.是旋轉對稱,對於一些edge-detection algorithm是好的開始。3.是可分離的。4.兩個Gaussion的迴旋是另一個Gaussion。
5-6
Spatial flitering可以使圖片邊緣清晰化,也有不同的說法如edge enhancement、edge crispening、unsharp masking。
* Ursharp Masking
假設原圖為 A, 那麼 Unsharp Mask 會先將原圖模糊化得到一張影像 B,
再將 A - B 得到兩者之間的差異, 最後將差異加回原圖。
* High-Boost Filtering增強原始影像已被模糊的地方或細微處。
5-7
nonlinear filter,在mask裡nonlinear filter是由灰階值的nonlinear function得到的。
maximum filter和minimum filter也是rank-order filter。
由p111頁知:maximum filter會變亮,minimum filter會變暗。
而指令nlfilter(c,[3,3],'max(x(:))')一張圖片C是3X3矩陣執行maximum filter,但是比較慢。
若用colfilt(c,[3,3],'sliding',@max)會比較快,sliding 指的是重疊的neighborhoods。
ordfilt2(c,9,ones(3,3))需要的三個值,分別是image c、選擇要輸出的index value、mask的定義。
這一小節希望老師可以在課堂講解清楚一點。
5-8
只處理有興趣的區域稱為regions of interest or ROIs,
而處理的processing稱為ROI processing。
指令roipoly是把圖像中所要的區塊顯示圈出來。
2008年11月27日 星期四
期中回顧
ch1 3A 6B ==> 71分
ch2 10A 2B ==> 96分
ch3 10A 7B ==> 84分
ch1-ch3 10A 6B ==> 86分
平均 84分
期中回顧
上影像處理,老師要我們試著讀原文書,
雖然一年級時老師也有希望大家能讀原文書,
但是都心有餘而力不足,這次有照著進度讀,
不過到後來就會變成大略讀而沒有很詳細的讀,
或者是先看指令打Matlab,再去理解,
覺得這樣起碼有達到一半的效果。
這門課老師的教學方式很不一樣,讓我可以輕鬆學習,
壓力相對的也不會很大,只是自己要逼自己緊一點,
有的時候會一直想偷懶,不過還是有學到東西的。
老師也很用心的教導。
而互評系統,每個人的看法都很不同,
我覺得真的有認真的同學就會得高分,
有努力就會有收穫。
2008年11月14日 星期五
ch4
ch4
4-1 Introduction
image-processing 有分三類:
1.Transform 轉換像素值,但還是相同的形式。
2.Neighborhood processing 在我們想要的像素去改變
gray level在它鄰近的像素, 而我們只需要知道gray level。
3.Point operations 考慮本身色彩 4-2 Arithmetic Operation
>> b=imread('lion.bmp');
>> whos b
Name Size Bytes Class Attributes
b 500x375x3 562500 uint8
這部分如指令秀出lion.bmp的 name size byte class Attributes
>> b1=b+128
會出現error,是因為uint8 的資料型態只適用於data storage。
解決方法有兩種:
1.>> b1=uint8(double(b)+128);
2.>> b1=imadd(b,128);
有加法,而減法的使用也一樣。
>> b2=imsubtract(b,128);
之後則顯示b1 and b2的圖,可以很明顯看到兩張圖的不同。
>> imshow(b1),figure,imshow(b2)
還有乘法、除法
>> b3=imdivide(b,2) y=x/2>> b4=immultiply(b,2) y=2x
取補數>> bc=imcomplement(b);
4-1、4-2在做image-processing介紹,
其實從課本上的圖也可以清楚了解內容。
4-2則是運用了四則運算。大致都可以懂得。
4-3 Histogram
是在說把影像用統計圖來顯示,是以長方條表示的統計圖,
這樣就可以很清楚的知道對比顏色。
指令為 imhist()就會出現直方圖了。
imadjust() 為對比調整函數,用來調整灰階值或顏色,
不過裡面的數值不知要如何填。還有4-4的LUT部分還是不太懂。
2008年10月31日 星期五
ch1-ch3
第一章主要是在介紹有哪幾種影像,
影像的type、應用。
也有了初步的了解影像處理是在做甚麼的。
第二章開始使用matlab打一些基礎的指令,
例如:imread、figure、imshow、imfinto,
現在在使用matlab上也都沒有甚麼問題。
第三章就顯得比較困難了,指令部分照著打
就大概可以知道意思,最先我主要碰到的問題是
uint8、im2uint8,可將圖形轉換,
uint8是8-bit整數,im2uint8是8-bit無符號整數。
floor取「最小上界」例如 floor(3.2) 是 3、floor(-3.2) 是 -4。
不過大致碰到的問題都可以看matlab的書,
和上網找資料,再來就要問問題了,
還有就是我時間分配的不好,
導致第三章後半部很多指令只知道如何用,
而不知道裡頭所放的值,意思是如何。
我想問3-5,3-6:
mod(floor(cd/16),2)
imresize(imresize(x,1/4),4)
imshow(grayslice(c,2),gray(2))
uint8(floor(double(x)/2)*2)
這些裡面的值分別代表的意思是什麼?
還有3-5,3-6可不可以講一下大致上的內容。
2008年10月24日 星期五
ch3心得
我也有稍微看了一點,越到後面越難,
所以並沒有很詳細的讀。每個章節都
有指令,這次我就先從指令先打,
再了解指令的意思。
3-2
truesize 所出現的圖會有軸則是圖的大小。
axis of 不會出現軸。
colormap(gray(247)) 調整不同的灰階值,247則是分割成247種灰階值。
3-3
指令:
>> n=imread('lion.bmp');
>> nd=double(n);
>> imshow(n),figure,imshow(nd)

其中double是由浮點數所組成的MxNx3陣列,範圍從0~1。
>> imshow(n2/255)
>> imshow(n1/128)

秀imshow(n1/128)圖會比imshow(n2/255)圖較亮。
>> c2=uint8(255*cd);
>> c3=im2uint8(cd);
uint8、im2uint8可將圖形轉換,uint8是8-bit整數,
im2uint8是8-bit無符號整數
(Binary Image 這部分不太會 ? )
3-4
>> c0=mod(cd,2);
>> imshow(c0)
>> c4=mod(floor(cd/16),2);
>> imshow(c4)
>> c6=mod(floor(cd/64),2);
>> imshow(c6)
>> c7=mod(floor(cd/128),2);
>> imshow(c7)

3-5
是在講空間的解析度,我是看指令的部分,
3-6
是在講量化和高頻振動,(這部分有上網頁尋找),
指令我有看imshow(grayslice(c,128),gray(128))
2008年10月17日 星期五
第五週心得
大概知道每個指令的作用,之後自己按照課本和Matlab操作就
比較順手了,原文書也是。
(程式是每個小節一直往下做的)
2-1 Grayscale Images(灰階影像)
>> w=imread('排隊的人.jpg'); 首先把圖讀進來,以便之後使用
有個疑問:我試了很多圖片檔但只有某部分可以使用耶?
>>imshow(w)
>> figure,imshow(w),pixval on
figure是建立一個放置圖片或圖表的視窗
pixval on是將游標指到位置的像素的座標與灰階值顯示出 (但我的圖是彩色的)
(也可以取得陣列w的圖形中最大最小值)
>>max(max(w))
ans(:,:,1) =
255
ans(:,:,2) =
255
ans(:,:,3) =
255
>>min(min(w))
ans(:,:,1) =
0
ans(:,:,2) =
0
ans(:,:,3) =
0
2-2 RGB Image
>>size(w)
傳回陣列大小
ans =
311 553 3
>>w(100,200,2)
把圖表示為陣列,在第100row,200column的綠色值 顯示出來(R:1,G:2,B:3)
ans =
63
>>w(100,200,1:3)
ans(:,:,1) =
48
ans(:,:,2) =
63
ans(:,:,3) =
60
>>w(100,200,:)
ans(:,:,1) =
48
ans(:,:,2) =
63
ans(:,:,3) =
60
>>impixel(w,200,100)
是回傳RGB的像素值,在200row 100column
ans =
48 63 60
2-3 Indexed Color Images
(這部分是我去查Matlab才知道的)
>>[w,wmap]=imread('排隊的人.jpg');
讀取排隊的人.jpg,並把影像的索引值設定
給變數w存放,把顏色對應表設定給wmap存放
問:我想知道wmap會存在哪呢?
2-3.1
(這部分是看老師所寫的,我看Matlab有很詳細的說明)
>>info=imfinfo('排隊的人.jpg');
可以獲得關於影像檔案的相關資訊
(原本我有加分號,沒有出現相關資訊,
後來同學告訴我不要有分號,就可以了)
>>info.ColorType
ans=
truecolor
得到字串'truecolor' 可以知道圖檔的格式為RBG影像 。
2-4
是講有關資料的型態 有:int8、int16、uint8、uint16...。
2-5
介紹imread & imwrite在 Matlab的function 所支援的格式:
(這是我從網路上抓的)
JPEG:以Joint Photographics Experts Group聯合影像專家組織壓縮方法所產生的影像 TIFF:Tagged Image File Format/標記影像檔案格式
GIF :Graphics Interchange Format/圖形交換格式
BMP :Microsoft BMP Format/微軟點陣圖格式
PNG :Portable Network Graphics/可攜式網路圖形格式
HDF :Hierarchical Data Format/階層資料格式
XWD X :X Window Dump/視窗傾印格式
ICO :微軟作業系統上的小圖示
CUR :顯示微軟作業系統上的滑鼠指標
HDF :Hierarchical Data Format/階層資料格式
>>dumphex('排隊的人.jpg',4) 可以列印出影像標頭檔
問:(但是有問題) >> dumphex('排隊的人.jpg',4)
??? Undefined function or method 'dumphex' for input arguments of type 'char'.
心得:
覺得先讀過老師和同學的筆記,在自己實際操作過
成就感好大喔,讀原文書也會比較輕鬆。希望自己
可以一直持續,把這門課學好。
2008年10月3日 星期五
第三週心得
而且老師也希望我們能熟悉原文書,其實,剛到銘傳上課時,
老師都希望學生們可以使用原文書,一剛開始會看不懂要查的
單字也很多,但真的只要持續的看,就會比較熟悉看的速度也
會比較快,這暑假我就有這樣做了小小進步。還有大部分的人
會比較喜歡看圖,我也有發現有圖的會是整段話的重點整理,
所以可以先看圖再看文字,像這次老師的解說由圖解說一目了然。
看了第一章節的介紹,影像可以做好多處理,例如:使線條更分明、
輪廓清晰、模糊、雜點去除、取邊緣、失真問題...,還有取得影像
時光線也很重要,會影響品質。影像處理不單單只是處理照片,
還可以應用在醫療、農業、工業、法律的實施,這些應用會和
影像處理有關。
以前就只是一張照片,現在可以經過影像處理做很多種變化、
多采多姿,而且應用範圍也很多。所以我希望自己能好好學
這門課,而且看了原文書可以直接的了解作者真正的意思,
第一章主要是介紹的,但有些名詞不太懂,查完資料就又會
增加自己的廣度和學習如何查資料。
查到的一些名詞解釋:
Nyquist criterion (奈奎斯特準則): 是討論的就是數字序列在無噪聲信道上 傳輸時的無失真條件。
CCD,Charge-coupled Device(電荷耦合元件): 是一種積體電路,上有許多排列整齊的電容, 能感應光線,並將影像轉變成數位訊號。
CMOS(互補式金屬-氧化層-半導體,簡稱互補式金氧半 ): 是一種積體電路製程,具有只有在電晶體需要切換啟閉時 才需耗能的優點,因此非常省電且發熱少。
2008年9月18日 星期四
Matlab初體驗
所以我對於這門課已經有初步的認識了。我會想修這門課有一部
分也是想說,現在數位相機越來越來普遍,每張照片都是珍貴的
回憶,想要好好保存,也可以好好發揮所學的。
上禮拜五第一次接觸Matlab,現在許多軟體都可以把很複雜的程式
,用幾行指令就可以了,帶來了許多方便。第一堂課有學到一些基本
的指令,如:imread、Imshow、imhist、figure、plot,很快的就能夠
清楚明瞭這些指令,現在還沒有Matlab軟體可以寫,不過我有從圖書
館借書,裡頭有許多數學,Matlab是很適合數學的數學軟體,
所以我也要好好的學數學。
