顯示具有 99361130 莊鈞凱 標籤的文章。 顯示所有文章
顯示具有 99361130 莊鈞凱 標籤的文章。 顯示所有文章

2013年1月17日 星期四

99361130 莊鈞凱 HW4

  本次作業其實老早已經寫好到一定的程度,結果一直忘記上傳,直至今日......冏。不多廢話了,以下是程式介面,與上次程式作業是寫在同一個檔案裡的。

(圖一)程式介面

  接著是光的三原色程式實作,見下。

(圖二)光的三原色

  然後是顏料三原色。

(圖三)顏料三原色

  說到以上三原色的程式撰寫,其實當初卡了非常久的時間,不斷的DEBUG,就是找不出錯誤,後來請教老師才發現:我、竟、然、把、背、景、寫、反、了!依照各位撰寫該程式的經驗想想,光的三原色若是一開始底圖是白色,在後續的程式撰寫上會發生什麼事,直接悲劇了啊!總之這裡讓我學到了印象深刻的教訓。

(圖四)漸層

  再來是這個很像顏色漸層的東西,奇妙的是他程式碼簡單到莫名其妙,卻異常的漂亮。接著是那個TrackBar把他亂拉亂拉,潮開心的啦!主要概念是將RGB中的任一值設為固定,另外兩值組合出255*255種顏色,然後放在這個正方型裡,真的覺得很漂亮。

  接著要懺悔的是我HSI那個圓型沒有去寫,有時間會嘗試看看的,我連書都借了啦!最後祝福老師及大家寒假快樂!




2013年1月13日 星期日

99361130 莊鈞凱 HW5

  JPEG,一種對影像的失真壓縮標準,老實說,我真的想不到有一天能夠深入了解這樣的圖片標準格式。利用PSPad開啟JPEG檔案後,映入眼前的16位元的資料,以前在看到這樣的資料時總覺得是天書,根本無從下手,現在終於了解到,下手?請翻開規格書。

(圖一)JPEG圖檔

  這就是這次拿來研究的JPEG圖片了,因為JPEG幾乎是現在網頁上最普遍可見的圖片格式,尋找圖片可說是不費吹灰之力,伸手可得。
  在PSPad官網下載該軟體後,就可以檢視該圖檔的16位元格式了,順帶一提,安裝完軟體後我的瀏覽器首頁就被綁架了,讓我不是很喜歡他。

(圖二)FFD8、FFD9

  上圖可見,資料的最前端寫著FFD8,最末端則是FFD9,如此顯而易見的事實,讓我們看看規格書怎麼說,「Start of image」、「End of image」,對啦!沒錯,就是圖片的起始和結束這麼簡單。

(圖三)FFE0

  接在FFD8之後,我們第二個可以看到的是FFE0,參見規格書的說明:Reserved for application segments,是的!此處就是讓應用程式可以塞入自己家的相關資訊,想起老師上課提到的,用Photoshop修圖後的照片,在這邊就可見端倪了。由此圖可見,有意義的字串為JFIF、Ducky,甚至還看到了Adobe的字串,總之這邊看看就好,順帶一提,JFIF全名為JPEG File Interchange Format,是JPEG的延伸額外標準。

(圖四)FFDB

  這邊我們看到了FFDB,記錄量化表的資訊,將原來人類看的比較順眼的量化矩形依照Z字型走向來羅列成這邊的序列。量化,就是JPEG失真的關鍵點了。

(圖五)FFC4

  主角登場:FFC4!這邊就是老師多次強調的部份了,這邊可以整理出兩個DC Table及兩個AC Table,以便後面的YUV資料來對應。
  首先老師有提到,有些圖片將所有的DC、AC Table資料都放到一個FFC4標籤之後,而有些圖片則可以找到四個FFC4的標籤,以此圖來說,他是屬於前者。
  從FFC4後的00B4可知道這段資料的長度為180,而00B4後的00則知道此後的一段資料為DC-0 Table,整理如下:

DC-0 Table
Category
Code length
HuffCode
Code word
3
2
0
00
4
2
1
01
2
3
4
100
5
3
5
101
1
4
12
1100
6
4
13
1101
0
5
28
11100
7
5
29
11101
8
5
30
11110
9
6
62
111110
10
7
126
1111110

  此段資料之後的下一碼為01,表達從此之後為DC-1 Table,我們一樣把他整理如下:

DC-1 Table
Category
Code length
HuffCode
Code word
1
2
0
00
2
2
1
01
3
2
2
10
0
3
6
110
4
4
14
1110
5
5
30
11110
6
6
62
111110
7
7
126
1111110
8
8
254
11111110
  此段資料之後則為AC-0 Table及AC-1 Table,做法雷同,推導上的意義是一樣的。

(圖六)FFDA

  在FFC4該段資料之後緊接著就是FFDA,規格書上寫著:Start of scan,我們可以知道從此處開始,後方就是真正掃描自圖片的編碼,在佐以前述Frame header的資訊,兩相對應,就可以把資料有意義的output出來了。

  實際上去查閱JPEG的檔案內容,感覺真的很不一樣,比較如C++那般的高階語言,這次作業像是往影像處理最根本的技術去鑽研,我們當然可以直接用市面上許許多多的影像處理軟體來操作、修改我們的圖片,然而在學術研究上,追根究底的去了解JPEG的檔案內容,對日後的研究發展可以產生很大的作用,畢竟連最根本的東西都弄懂了,馬步紮的穩,練功就好辦的多了!


2012年11月26日 星期一

99361130 莊鈞凱 HW3

(圖一)程式介面

        這次作業的呈現 ,把功能鍵分類後放到上方的MainMenu裡 ,將處理結果置於PageControl中 ,並拉入兩個Image元件 ,方便比較處理結果.

        第一個探討的是中值濾波器 ,將像素值以鄰近像素值排列後的中值填入 ,理論上當該序列出現過大或過小的值時 ,會因為這樣的處理而過濾掉 ,以下貼出實驗結果.

(圖二)原圖

(圖三)加入9%胡椒鹽

(圖四)中值濾波

       我們將原圖加入胡椒鹽來呈現圖片雜訊的效果 如(圖三) ,經過中值濾波器的處理之後胡椒鹽消失了 如(圖四) ,但將(圖四)與原圖做比較 ,發現原圖經過中值濾波之後變得不太一樣 ,像是水彩畫一般 ,上網搜尋之後得知影像處理上的水彩畫效果確是要經過中值濾波的處理(參考http://blog.csdn.net/luckyboy101/article/details/7858995)

        接著探討平滑濾波器 ,將像素值填入周圍像素的平均值 ,也就是說每個像素值會參考周圍像素的值來做處理 ,在程式的撰寫上 ,是將包括自己及其周圍的八個像素點捉出計算平均後再填入該點 ,以下來看看處理的效果.

(圖五)原圖

(圖六)平滑化處理

        由於心中有了預期 ,所以這次的實驗特別找了岩石這樣有稜有角的圖片 ,可以看出石頭尖銳的線條沒有那麼明顯了 ,說白了點 ,感覺整張圖片"糊"掉了 ,因為每個像素與周圍像素去做計算 ,可以想像在圖片呈現出來的"界線"的感受會變得不明顯 ,而實驗結果也確實如此.

        最後來探討銳化濾波器 ,從字面上不難感受到是使圖片銳利化 ,以下貼出實驗結果.

(圖七)原圖
(圖八)銳化處理

        (圖七)的原圖經過銳化處理 ,可以發現原本柔和的雲海輪廓更加的清楚 ,連遠模糊的山也清晰多了 ,感覺很像平滑化相反的處理 ,這樣的濾波器在圖片模糊或是邊緣不清楚的情況下使用可以得到很好的效果.

        以上三種濾波器 ,經由實際實驗來得到直接的經驗 ,比一字一句從書本上學習來得有效多了 ,藉由撰寫程式 ,直接改變像素值來了解影像處理的原理真的受益良多 ,對於程式撰寫能力也精進了許多.




2012年10月19日 星期五

99361130 莊鈞凱 HW2

  這次作業我最大的收穫是Histogram的運用 ,經由分析相片(圖片)的Histogram來了解整張相片是如何構圖成像 ,以往在使用數位相機也只是使用「Auto」模式來進行拍照 ,對於整張圖片的色調、明暗度則完全沒有概念. 然而經由這次撰寫程式的經驗 ,也了解到我們可以從相片中獲取什麼資訊 ,又可以對相片做什麼樣的處理 .不同於實景 ,相片是間接呈現於眼前 ,經由程式來判斷、修改相片資訊 ,可以得到不同於實景的感受.

(圖一)構圖豐富的海灘相片

(圖二)海灘的Histogram

  (圖一)所呈現出的視覺感受使人感覺非常舒服 ,天邊的夕陽予人光亮的感覺 ,而端看礁石可以發現背光面的陰影 ,海面上的波浪也非常立體. 再來看看轉換成Histogram的(圖二) ,對應了我們觀覽相片的感受 ,RGB三色的明暗大體上置中 ,沒有特別集中於光亮處或是暗處 ,再細加端詳會發現除了置中處的色彩外 ,整個Histogram偏亮面較暗面多 ,可能是天邊的夕陽造成整張構圖小幅度的偏亮 ,然而還是有適當的陰影來造成相片的反差 .總體上來說這張相片在明暗的規劃上是比較完美的.

(圖三)手機拍攝夜景

(圖四)手機拍攝夜景的Histogram

  (圖三)是用手機拍攝的夜景 ,我們可以很清楚的知道相片中的光源嚴重不足 ,只能依稀看到是街景 ,但相片中的景物卻沒有辦法很清楚的判別出來 .再讓我們看看(圖四)的Histogram ,果不其然色彩大多集中在暗處 ,已經算是曝光嚴重不足的Histogram型態 ,致使我們無法清楚的判別出相片中的景物 ,接著我們使用均化來處理這張相片.

(圖五)均化後的結果

(圖六)均化後的Histogram

  (圖五)即是均化後的相片 ,明顯的可以發現相片變得比較亮了 ,相片中景象的輪廓則更加的清楚 ,看看均化後的(圖六) ,暗處的色彩被平均的分配到了每個明暗度 ,致使我們對於相片中的色彩可以看得比較清楚 .另外我們會發現均化後的相片中有許多雜點 ,因為這是手機所拍攝出的相片 ,我認為可能是因為手機的相機畫素、感光元件較差 ,同時又因為拍照時的曝光不足 ,而動態元件是有範圍限制的 ,導致Histogram更加左方的色彩無法截取到 ,使我們在均化時被吃掉的色彩值是無法處理的.

  這次作業中為了更加了解相片Histogram的意義 ,也找了一些相關資料 ,與老師的上課內容相互對應 ,使我對於這周的作業內容更加有感覺 ,進而學到了更多的知識 ,比如說在這次作業之前 ,我只知道在大陽光下拍照會美美的 ,但知其所以卻不知其所以然 ,現在我了解到於太陽光底下拍照時 ,由於光線變化大 ,相片於Histogram中的光暗資訊會比較平均 ,又同時具備了高光位及低光位 ,有了較大的反差 ,相片看起來就更加的生動 .

  對於Histogram的運用上我得到了一些想法 ,讓我們再看一張圖

(圖七)天空中雲朵的相片

  (圖七)是拍攝天空的相片 ,看起來漂亮是漂亮 ,但看起來總覺得怪怪的 ,這時候我們把它轉換成Histogram圖.

(圖八)雲朵相片轉換成Histogram圖

  (圖八)是我們轉換成Histogram的結果 ,這個結果大出我們所料 ,因為在想像中拍攝天空的相片不是色彩應該大多分布於亮光位嗎? 但這張相片在高光位幾乎沒有色彩 ,色彩大多集中在暗光位及中間 ,推論可能是拍攝照片時光圈及快門的設定關係 ,是不是拍攝者特別所為就不知道了 .重要的是經由Histogram的分析 ,我們也可以學著分析相片 ,來得到一些更有用的資訊.

  於程式的撰寫上 ,由於缺了一個禮拜的課 ,沒有詳細聽到老師對於Histogram的上課內容是比較可惜的地方 ,好在在之後的加課時間再向老師詢問時 ,釐清了之前所不了解的部分 ,成功的把直方圖實作出來 ,對我來說當初最大的問題點在於捉取圖片的像素內容 ,後來經過老師講解 ,才知道原來利用ScanLine的函式 ,可以從圖片一行一行的捉取出RGB資料 ,而有了圖片資訊 ,在後續的Histogram作圖及相關的計算就簡單多了.

  周周的作業都讓我一點一滴的從「做中學」 ,越來越加了解影像處理這門學問 ,以往對我來說像迷一般的學程 ,經由一次次的學習不斷的更加清晰 ,在學習的過程中由於很貼近生活 ,也讓我得到了很多樂趣 ,對影像處理也越來越有興趣.

2012年9月28日 星期五

99361130 資工三乙 莊鈞凱



        影像處理 ,常常聽到這個名詞 ,但卻從來沒有仔細去了解過 ,對於數位相機也只知道快門鍵的存在 ,而藉由閱讀書籍之後 ,對於這個以往從未接觸的領域得到了些初步的認識.

        色彩學 ,這是踏出的第一步 ,眼睛所見 ,伸手所觸及 ,這個世界被漆成五彩繽紛的顏色 ,然後人們開始探討這些五顏六色 .我們所看見的顏色可以經由自行會發光的物體或是物體反射光線來得到 ,總之就是脫離不開「光」這奇妙的存在 ,當然我們都知道光在經過三稜鏡後會形成光譜這件事 ,這些色光就是顏色的源頭了.

        色彩學博大精深 ,細部的探討或是應用都可以寫成論文來研究 ,而在最基本處 ,書中強調了色彩最基本的三個要素:色相、明度、彩度 ,這些概念看似簡單 ,但在思考時卻又會不時的混淆.




色相 ,區別色彩之間的差異 ,簡單來說就是用來辨別色彩的名稱 ,像是紅色、黃色、藍色 ,這些就是不同的色相.



明度 ,指色彩的明暗程度 ,一般在色相上加入黑色以及白色來調整明度的變化.



彩度 ,用來區分色彩的鮮濁程度 ,如果我們在一個色相中完全不摻入黑色或是白色 ,那這就是彩度最高的狀況 ,又稱為純色 ,相對來說 ,如果我們把某個色相與黑色或是白色混合 ,彩度就會降低..

        然後我就想到一個小小的問題 ,當我們對某個色相加入黑色或是白色 ,理所當然的明度會跟著降低或是提高 ,然而,從書籍上的理解是 ,不論是哪種情況 ,彩度都會降低 ,也就是說明度與彩度這兩個屬性彼此是不互相獨立的 ,然而在這種狀況下 ,分別用這兩種角度去探討色彩學是否會不夠明確 ?



        最後來談談「色域」 ,指的是一個色彩範圍 ,不論是輸入、輸出設備或是顏料 ,都存在這樣的概念 ,即是這些裝置所能允許的色彩範圍 ,比較容易感受的例子是電腦螢幕有自己的輸出色域(RGB色域) ,而印表機也有自己的輸出色域(CMYK色域) ,所以我們會發現常常在電腦上看到的畫面會跟影印出來的產品色彩不太一樣 ,而人眼所能辨識的色彩比這些裝置都還要大得多了 ,或許是一種恩賜吧 !讓我們能看見這世界的美麗.


圖:色立體 ,將色彩三要素給立體化 ,我覺得超漂亮的啊!


圖:色相環 ,用於網頁設計中背景與文字間的顏色配合時超級好用!