顯示具有 99360453 陳胤霖 標籤的文章。 顯示所有文章
顯示具有 99360453 陳胤霖 標籤的文章。 顯示所有文章

2013年1月12日 星期六

99360453 陳胤霖


JPEG影像壓縮處理

99360453 陳胤霖 資工三乙

流程

JPEG影像壓縮標準為JPEG(Joint Photographic Experts Group, 聯合圖像專家小組)所制定出來,基本上要轉換成JPEG前的影像是採用RGB色彩模型,第一步需轉換成YCbCr色彩模型,第二步為DCT(Discrete Cosine Transform, 離散餘弦變換),可將影像的色彩轉換為頻率,第三步為量化(Quantization),利用人類眼睛對於高頻的影像不敏感特性,把高頻率的部份為0,可以大幅實線影像壓縮,最後為熵編碼(Entropy Coding),使用霍夫曼編碼會轉換成Z字型的8X8矩陣(Huffman Table),轉換步驟完成後即輸出JPEG檔案格式影像。



這次實作的影像,拍攝於日月潭

利用PSPad能顯示檔案的16進位格式


JPEG格式分為檔頭(Header)與影像資訊,上圖能看到FFD8利用JPEG說明文件可以了解是開始的標記,最後面當然會有FFD9做為結束的標記;FFDB為量化表;FFC4為Haffman Table。
 
FFDB
FFDB量化表


FFDB開始,0043表示長度為67,00表示QT訊息,後面為64個DQT量化表,下圖

實作DCT表格


16進位編碼需Z字形轉換成DCT表格完成表格後,可以看到有兩個FFDB標記,一個是亮度量化表,另一個是色度的亮化表。

FFC0
 FFC0 圖像資訊
 
 
 
FFC4

FFC4 Haffman表

第一個表長度為31,00為DC TABLE,00表示HT ID為0;第二個表長度為181,10為AC TABLE,00表示HT ID為0;第三個表長度為31,00為DC TABLE,01表示HT ID為1;第四個表長度為181,11為AC TABLE,HT ID為1,前兩個表格為亮度DC/AC,後兩個為色度分量DC/AC。
 
以第一個為例實作Huffman表格
 
Huffman表格

編碼為1的有0個,編碼為2的有1個,編碼為3的有5個,編碼為4到9的各有1個,編碼為10~16的各有0個。


對應到上面表格 Huffman表格
 
FFDA

FFDA SCAN開始

長度為12,Component為3個,之後為ID,再來就是影像資訊直到FFD9結束標記。

心得

JPEG為目前廣為大眾使用的影像壓縮格式,常用於數位相機失真壓縮,網路圖片傳輸等等,影像處理課程也在JPEG壓縮做一個完美的結束,了解JPEG運作的核心,也了解到如何去看16進位碼,看照片不再只是看漂不漂亮,現在可以看出裡面的編碼,身為資工人算是基本的實務經驗,至於研究上還可以把資訊隱藏在JPEG圖檔編碼,當然知道JPEG壓縮如何運作之後,或許也可以偵測是否有被更動過,我想這學期的最大收穫是可以寫出程式完成以前利用繪圖軟體可以做的事,例如黑白、反相,還有Histogram直方圖,色彩的三原色,再來就是JPEG壓縮,受益良多,感謝老師的教導,也向老師拜早年。

2012年12月7日 星期五

99360453 陳胤霖


Homework 3: 色彩模型

99360453 陳胤霖 資工三乙

這次的程式屬於觀念性比較強,實作光的三原色:紅、綠、藍以及顏料三原色:青色、紫紅、黃組成;前者兩兩相疊可以顯示出顏料三原色,三個交集可以顯示出白色;而顏料三原色兩兩相疊可以顯示出光的三原色,三個交集顯示出黑色。

開始寫程式之前經過老師上課的講解後,上機時其實觀念已經了解,寫程式遇到一些困難,一開始不知道要設背景圖的顏色,所以執行後一定出錯,之後知道要設白色或黑色做為背景圖,供ScanLine可以掃描色彩記憶體,但是發生以下的錯誤,原因是沒有讓重疊部分偵測色彩值。



接下來錯誤改正,使兩兩重疊的部份和三個交集部份可以偵測色彩值。

  

第二個實作是色彩模型(Color Model),RGB色彩模型是RGB的値各建立在三個頂點上,青色、紫紅、黃色在另外三個頂點上,黑色在原點,白色在原點的對角頂點上;上排: RGB各為255,下排: RGB各為0。
 


2012年11月15日 星期四

99360453 陳胤霖


Homework 2: 空間濾波器實作

99360453 陳胤霖 資工三乙

平滑化、銳化、中值濾波器是空間濾波器的實作,平滑化是平均濾波器也稱為低通濾波器,相反則是高通濾波器也就是銳化;而中值濾波器的功能與低通濾波器相當,目的都是使圖片中的雜訊消除,但呈現效果不同以及優點與缺點,並推廣濾波器的應用。

 
平滑化與中值濾波器

一開始必須先產生「胡椒鹽式雜訊 (Salt and Pepper noise)」在圖片上,使用紅色圖片與花蓮六十石山金針花季風景圖片。

產生胡椒鹽式雜訊

 

 平滑化(低通濾波器)


低通濾波器 風景圖片比較圖


中值濾波器



中值濾波器風景圖片比較圖






兩項結果得知,中值濾波器去除雜訊效果較好,平滑化的方式利用中間像素周圍八個點的像素值與中間像素值的總和除於9得到平均數再代入中間像素值,所以使用上也會把其他像素值給模糊掉,另外風景圖的藍天部分還是有許多黑點,整個圖片已經失焦;而中值濾波器也是取得中間像素值以及周圍八個點的像素值,但是經由排序選出第50個百分位,也就是取得第五大的數值帶入中間像素值,可有效去除不同像素值的雜訊,不過風景圖的部份雖可有效去除胡椒鹽,甚至風景本身會有種油畫效果的出現。



中值濾波器使用到排序,此次複習以前教過的排序演算法,利用泡沫排序法(Bubble Sort),時間複雜度高達(n^2),也用快序排序法,時間複雜度(n log n),雖然最差情況也有可能為(n^2),不過理論與實作結合並且利用到影像處理實務上,可是不同的經驗。


銳化(高通濾波器)



相片對焦在熊身上,後面的發票與小郵筒的字原本是模糊,利用銳化效果發現熊的邊緣更加清楚,後方發票的字也變得非常銳利清楚;銳化使用中間像素值與其他周圍八個像素值利用拉普拉斯導數,也就是說中間像素值乘8,其他乘-1,相加後得到的一數值可以除以一個數當做銳化的程度,最後判斷這個數值,如果大於255代入255至中間像素值,如果小於0則中間像素值為0,藉此能夠凸顯邊緣。




此張照片為花蓮七星潭海岸,照片經過程度5的銳化後發現,因為海浪線條複雜,海浪變的非常不自然雜訊變的許多,故銳化必須看相片本身的主題而做取捨。
 
 
 過度銳化會使得照片產生嚴重雜訊。
 
原本寫出來的銳化功能程式碼的效果有出現破圖的情況發生,並且設定變數,可能是銳化程度太高導致圖像破圖,經由調整銳化效果程度成功呈現。


推廣



先使用中值濾波器的效果與再使用高通濾波器,兩種濾波器結合在一起的效果,可以有效去除主題與非主題的雜訊,使照片主題更為明顯,圖片使用花蓮火車站的站牌。



 


左邊圖片的花蓮與白色背景都有雜訊存在,利用中值濾波器使雜訊在主題上以及背景消除,再利用高通濾波器做銳化,使得影像品質提升。







後記
影像處理程式讓原本枯燥乏味的程式設計更添了趣味,使用平常拍照的照片,不同以往使用修圖軟體,自己設計程式介面,設計演算法,與以前課堂知識融會貫通,程式本身的觀念經由老師上課提點,推導程式碼,思考碰撞出來的經驗就是自己的。


2012年10月19日 星期五

99360453 陳胤霖


Homework 1: Histogram & Histogram Equalization

        99360453 陳胤霖 資工三乙
 

影像處理第一個作業是實作Histogram(影像直方圖)和Histogram Equalization(直方圖均化),寫程式之前先複習從以前到現在所教的概念並且也實作出來,包含兩點之間畫實線、負片效果和灰階效果,這三種功能是繪圖軟體常見功能,上課聽懂原理回家馬上實作複習,從中了解影像處理的資料結構的處理方式,以前常用的陣列在影像處理中扮演重要的角色。
 
Negative
 
GrayLine
 
Draw a Line
 
實作Histogram之前的上課中知道說要去scanline每個pixel的值,而image有R、G、B三色,各把三種顏色的Histogram實際畫出來,另外還有RGB三種顏色加起來的Histogram,概念都相同,過程中雖有錯誤、圖跑出去框線,試著去解決問題,最後問題也迎刃而解。
 
為了使圖片可以讓使用者放大縮小,增加trackbar縮放的功能;Histogram的圖也許會超過邊界,也設定倍率的trackbar大小調整
 
                                                              HistogramR
 
HistogramG
 
HistogramB
 
Histogram RGB
 

Histogram Equalization的問題就有趣了,前面Histogram實作每個像素出現的次數,這邊為了要有均化的效果,所以必須還要統計每個像素佔的比例,最後乘於255讓影像色彩值域回復。
 
Histogram Equalization 比較圖 (左:均化 右:原圖)
 
均化後的色彩對比亮度整體來講變高,使原本在深夜弱光的情況下所拍出來的照片,立刻擁有似白天的效果在,但影像失去當下所擁有的感動。




均化後的色彩對比亮度整體來講變高,使原本在深夜弱光的情況下所拍出來的照片,立刻擁有似白天的效果在,但影像失去當下所擁有的感動。
 
經過這次的作業實作大致上了解基本的影像處理概念,透過實作可以把課堂上乏味的理論透過程式寫出來增進實力,也了解BCB元件的使用方式,有趣的是,程式設計最迷人的地方就是可以創造無限的可能,沒想到可以寫出類似繪圖軟體的功能出來。


 

2012年9月24日 星期一

99360453 資工三乙 陳胤霖



攝影的原點
 


談到攝影,一定得敘說攝影史,起源1837年的銀版照相法,進步到攝影底片的發明,如今,拜日新月異的科技之賜,出現不必底片的數位相機的革命性發明。


幾年前人手一台數位相機的盛況,現在每個人一台智慧型手機上面都會配備相機,相機的普級以及周邊相關軟硬體的提升,拍攝的品質例如光圈、快門,以及ISO、白平衡等等,皆可以透過軟體最佳化,照片的格式,例如失真的JPEG檔、留存拍攝資訊可供後製使用的RAW檔,本書以數位攝影的基本知識作為出發點,解釋如何掌握最基本的光圈、快門和構圖,拍出好照片。
 
 
對攝影來說,光線非常重要,沒有光線沒人看得到東西,當然照片沒了光線就少了情緒,光線打在主題上,讓照片活出生命來。
 
 

構圖可以說是照片的靈魂,拍攝者如何利用照片去表達出當下的感動,可是科技無法取代的,如果要凸顯畫面的主題可以填滿畫面、利用淺景深或是基本的井字法則,都是讓一張照片能夠生動的方式之一。

 
回到攝影的本質,照相前除了構圖以及一些攝影的基本要素之外,也不管是不是使用專業的數位單眼相機或是普通的數位相機、手機,從攝影的角度出發,觀察生活當下周遭的人事物,或許時時刻刻都有著感動的瞬間,利用光和時間的交錯,按下快門,讓一張張影像變化為會說故事的照片,帶給不同的欣賞者有著不同的悸動。