顯示具有 03360652 閻美雅 標籤的文章。 顯示所有文章
顯示具有 03360652 閻美雅 標籤的文章。 顯示所有文章

2017年1月7日 星期六

03360652 閻美雅 期末回顧

影像處理

對於各次作業的心得感想,前幾篇都有,所以這篇就來講一下我自己的心路歷程吧!

        一開始會選修這門課真的就是老師您大力推薦的原因,學期初交了一個APP介紹的作業後就都只是上課去,然後好像似乎沒做什麼事,看老師表演完就下課,一直到期中考都是如此,老實說,當時真的對影像處理沒什麼感覺。

        經過老師長期的奮鬥,我們終於在期中考後開始可以自己寫寫影像處理的程式,雖然老師說可以用任何東西寫我們的作業,但我真的真的不知道怎麼開始,非常感謝老師在上課時間帶著我們一步一步做,也幫美雅起個頭,之後上課都多多少少寫些程式,寫著寫著,我不知道為什麼腦袋就漸漸有東西了,自己動手寫,跟聽老師說,真的感覺不一樣!隨著老師上課的進度,加上PPT的輔助,可以寫出老師交代我們做的事情,不管是功課或是額外的題目,真的是增加不少信心!

        期中後老師有安排一個3D攝影比賽,其實我超級喜歡的,因為那是我第一次自己拍出3D影像,雖然拍的沒有某些同學這麼厲害,但還是很開心。為了這次比賽,我們一小群人一起出去,順便拍照順便玩!明明我們去的是同一個地方,但因為取景與拍照技術差別,拍出來的成果真的大大不同!不論最後比賽排名如何,我也算是學到一點點拍3D照片的技巧了,包含拍照角度、移動距離、取景需有前/中/後景、最遠處紅藍需重疊、什麼角度拍就要什麼角度看…等等,收穫良多,有學到東西可比成績排名重要多了!

        期末考將近,也是繳交作業期限將近,我們除了上課時間寫一點,還在513待上了好幾天,才把這學期的程式作業用XE2做完,真的花超級多時間,我把所有的作業寫在同一個專案裡,看了一下…〝2004行〞程式碼,還不包含宣告那些!根本心血結晶,超級有成就感的!!雖然老師說不用交程式碼,但還是想提一下,超過兩千行的小作品就這樣誕生了!

        課程告一段落,過程寶貴無比,選了這門課真的讓我受益良多,我竟然可以寫出一個小小的P圖軟體,這都要歸功於老師一步步帶領著我們,謝謝老師!也要謝謝跟我一起完成作業的同學們!

03360652 閻美雅 HW06

色彩模型

一、圖片

〝玉山〞

〝梅花〞

        1. 灰階

          ※RGB相加取平均
〝玉山〞

          ※優化
〝玉山〞

        2. YUV模型

〝梅花〞

〝梅花〞

〝梅花〞

〝梅花〞

〝梅花〞

二、心得

          「灰階」
                  灰階直覺就是RGB色彩值取平均,跑出來也的確是灰階;但老師提到的另一算法,
          是要乘上一些係數的,跑出來的灰階結果好像真的比較好看,保留住原本的亮暗元素,
          讓灰階看起來看加真實。
          「YUV模型」
                  這個部份其實我一開始不是很會做,多虧老師利用上課時間教大家一步一步寫,
          一開始畫〝UV介面〞時,因為換算部分,有想一下下,然後好不容易畫出來了!
          但是,顏色怎麼跟旁邊同學的不太一樣!?於是我又回去看了一下程式碼,檢查公式,
          應該是沒錯的!最後發現是隔壁同學的 x 、 y 跟我的不一樣,原來我們都沒錯。
                  之後的影像,有了UV界面之後就容易多了,因為只要把原本故意的 Y 值,
          用轉成灰階影像後的色彩值帶進去就大功告成了!
                  UV界面會做了之後,其實其他界面、模型也能依樣畫葫蘆,但是老師上課說,
          我們作業只要做YUV模型就好,所以我就暫時休息了,最後附上美美的彩色梅花!

03360652 閻美雅 HW05

空間濾波

一、圖片

〝福隆沙雕〞

〝臺北101〞

〝銘傳大學桃園校區 校景〞

〝銘傳大學 校徽〞

〝龜山島〞

        1. 平滑化

            使影像模糊化,用來隱藏小細節

            ※無權重 -> 較模糊
〝福隆沙雕〞

            ※有權重 -> 較清晰
〝福隆沙雕〞

        2. 銳化

            用來強化影像小細節,並凸顯色彩強度的變化

            ※四方位
〝臺北101〞

            ※八方位
〝臺北101〞

        3. 浮水印

            ※預設位置
〝銘傳大學桃園校區 校景〞

            ※自己選擇位置
〝銘傳大學桃園校區 校景〞

        4. 撒胡椒鹽

            ※撒胡椒鹽
〝龜山島〞

            ※可以撒很多很多胡椒鹽 → 雜訊多
〝龜山島〞

        5. 去雜質

            ※中值濾波器
                參考周圍取中間值
〝龜山島〞

            ※最小值濾波器
                參考周圍取最小值
〝龜山島〞

            ※最大值濾波器
                參考周圍取最大值
〝龜山島〞

            ※雜訊過多,導致中值濾波器無法將其去乾淨
〝龜山島〞

二、心得
        「平滑化」
                這部分單純帶入兩個PPT的公式,公式其實很簡單,做過一遍就會記得起來;
        但是如果老師沒有給參考公式,要如何自己想到此方法,還真的不是那麼容易。
        主要是讓影像變模糊,使其小細節被忽略,但若模糊程度過大,反而會壞事,
        因為會使影像整個模糊不清,不過還是要看要運用在哪裡,C a s e  b y  c a s e!
        總之,拿捏平滑化的係數其實是很重要的!
        「銳化」
                銳化可凸顯色彩強度的變化,會使影像看起來更加清楚。依照銳化結果我覺得,
        說不定可以運用到需要找邊的問題,就算不一樣,應該也會有點類似吧!
        「浮水印」
                好用,可在影像標記出處,演算法也很簡單,只需把要重疊的點相加取平均即可!
        但也因如此,如果能拿到浮水印的原圖,就表示我們可以將式子反推回去,如此一來,
        就可以去掉別人上的浮水印了!因此,如果我以後要自己上浮水印,我一定記得,
        把式子改一下,弄個係數什麼的,讓其他人無法輕易就去掉我的浮水印!
        「撒胡椒鹽」
                如果是像我一樣亂撒,其實沒什麼難度,只要 r a n d o m 一下就好!有進階版,
        就是讓人選擇雜訊要佔幾%,並且讓這些雜訊接近平均的撒在影像上,這很難辦到!
        因為想知道需要幾個雜訊並不難,難事難再讓雜訊平均分布在影像上面的這件事。
        假設我現在要撒的雜訊只有10個,但是我的影像大小為 256 * 256 ( 甚至更大 ),
        那麼什麼時候該撒雜訊就很不好辦了,因為如果抓得不好,可能只跑到影像前三行,
        我的10個雜訊的 q u o t a 就已經用完了,那個雜訊就只分布在上面;相反的,
        如果我雜訊要撒90個,而影像大小為 10 * 10 ,那麼就可能發生整張影像都跑完了,
        還有剩下的雜訊 q u o t a 還沒有用。如此一來,撒胡椒鹽這回事,似乎真的不簡單!
        因此,我只寫了小小的幾行程式,讓使用者可以調整胡椒鹽相對的多寡,
        而無法指定胡椒鹽確切要佔幾 %。此外,我有讓胡椒鹽有兩種顏色( 黑 & 白 ),
        讓胡椒鹽看起來相對更雜亂一些。
        「去雜訊」
                我寫了中值濾波器、最小值濾波器和最大值濾波器三種方法去雜訊。
        其實這三個濾波器演算法大同小異,都是參考周圍的色彩值,差別只在於,
        要選擇哪一個而已。其中中值濾波器就挺大眾的,可以將大部分Case的雜訊去除;
        而最小值濾波器我覺得最適合用來去除偏白色的雜訊,最大值濾波器則剛好相反,
        可以用來去除偏黑色的雜訊。但依照老師PPT上的方法,也就是指參考周圍一圈,
        能力有限,當雜訊相對數量多時,就無法完全去除乾淨。
                此外,我也拿過真的撒了胡椒鹽的玉米濃湯影像丟給程式跑,結果發現,
        胡椒鹽根本就沒有去掉!後來我亂玩了一下,先把影像銳化一下,再執行中值濾波器,
        有去掉是有去掉,但是只去掉其中的一、兩個小黑點,還不是整個胡椒鹽!
        然後我開始思考原因,覺得原理應該跟雜訊太多去不乾淨一樣,因為中值濾波器,
        是參考周圍一圈的色彩值然後取中間值,那如果某個雜訊很不幸周圍一圈也都是雜訊,
        那取中間值依然還是雜訊啊!想來想去,讓我想到一個辦法,應該可以解決問題,
        如果…我參考的色彩值不只周圍的一圈,而是兩圈、三圈…到很多圈,
        那麼不就可以在雜訊是一大群的 C a s e 中,選到非雜訊的色彩值了!
        至於要參考幾圈,可以讓使用者自己調整,直到真的去掉雜訊為止。真是好辦法呢!

03360652 閻美雅 HW03

色階與曲線調整

一、圖片

〝臺北101〞

〝龜山島〞

〝日出〞

〝玉山〞

        1. 色階調整

            依不同的輸入上、下界與輸出上、下界,秀出調整後影像。
            
            *隨便試...

〝臺北101〞

〝臺北101〞

            ※變亮!

〝龜山島〞

〝日出〞

            ※變暗!

〝龜山島〞

〝日出〞

        2. 曲線調整

            依不同的曲線(限定通過點),秀出曲線與調整後影像。

            ※曲線開口向下


〝玉山〞

            ※曲線開口向上


 〝玉山〞

二、心得

          「色階調整」
                 這部分比較沒問題,純帶公式。小小要注意的是,輸入值若超出輸入下界須歸 0 ,
          如果超出輸入上界則設為 2 5 5 。起初寫完程式之後,我就開始沒有系統的亂測,
          輸入上、下界和輸出上、下界一起亂調,調整後影像幾乎都變得灰灰的,不清楚;
          後來開始有規劃的測試,即一次只限制一個地方的上界或下界,結果有大發現!
          實驗結果為,「輸入上界 下調」或者「輸出下界 上調」,會變亮;
                                 「輸入下界 上調」或者「輸出上界 下調」,會變暗。
                 後來想想,這是可推論的結果,用白色( 2 5 5 , 2 5 5 , 2 5 5 )去想的話,
          當色彩值統一變大,自然會變亮;反之黑色( 0 , 0 , 0 ),色彩值變小,則變暗。
          起始灰灰的結果亦是如此,只要RGB三個值一樣就會是灰色,只是光暗程度不同,
          一開始同時調整輸入與輸出的上界和下界,若上下界之差距越小,
          色彩RGB自然會往同一區域集中,則RGB三者數值就會越相近,顏色也就變灰了。
          「曲線調整」
                 這部分一開始我就卡了一下,因為我對曲線怎麼畫的腦袋空空,經過老師指點,
          我決定一樣用 I m a g e 實現,我算出每個 x 對應的 y ,依 y 值先畫出我的曲線,
          我選了一個很笨但是很好想的辦法,就是塗顏色!雖然塗顏色的判斷式很簡單,
          但是我還是卡了一陣子,在畫出一堆不規則的圖案和各種 M e m o debug 之後,
          我終於想出我的判斷式了,一個點一個點塗滿後,曲線就出來囉!
                 最後調整後的影像其實就只是把每個點的色彩值帶進去公式裡的 x 算答案而已,
          最後算出來的答案一樣要檢查是否在0~255之內,若沒有,則自行調整一下即可!          
          調整後影像的實驗結果如上圖片區。
          

03360652 閻美雅 HW02

直方圖

一、圖片

〝櫻花〞

陽明山

龜山島

    1. 直方圖

        統計RGB在0~255的個數。

〝櫻花〞

〝陽明山〞

〝龜山島〞

    2. 累積直方圖

        將統計結果,以「iColorArray[k] = iColorArray[k]+iColorArray[k-1];」做累加。

〝櫻花〞

〝陽明山〞

〝龜山島〞

    3. 直方圖均化

        將累積密度函數值程上最大色階值( 2 5 5 )。
〝無圖〞

二、心得

        「將圖片做色彩統計,並畫出直方圖與累積直方圖。」
                這部分的程式還蠻直覺得,只是要注意 I m a g e 的左上角是( 0 , 0 ),
        所以畫線的時候,需要〝2 5 5 - 統 計 結 果〞才可以讓線由 I m a g e 底部往上畫。
                完成之後卻發現,我的 I m a g e 被整個上色了!?後來用 M e m o 印出統計結果,
        才終於找到問題所在,我的統計結果根本超出255超級多,線超出 I m a g e 沒顯示出來,
        導致直方圖失控,解決方法是用比例的觀念,換算出當前直方圖數值才是正確的位置!
        其換算公式為〝當前直方圖數值:255 = 當前統計結果:統計結果最大值〞。
        「直方圖均化,並秀出均化後的影像與直方圖。」
                寫程式當下,查了一下老師上課的PPT,.發現PPT只有一頁關於直方圖均化的說明,
        公式為「g ( x , y ) = c d f ( f ( x , y ) ) * 2 5 5 」,當下卡在累積值*255一定會超出範圍,
        對於其百思不得其解,故先跳過直方圖均化。
                程式全部寫完後,回過頭來想這個問題,最後決定參考以前修過課的人的作業,
        終於看到「陳奕穎 HW02」,裡面有寫到,「累 積 統 計 [ i ] / 累 積 統 計 [ 255 ] * 2 5 5」
        可將原來顏色分布平均分到0~255範圍。
        原來不是「累 積 統 計 [ i ]」* 255 ,而是「累 積 統 計 [ i ] / 累 積 統 計 [ 255 ] 」* 255 !
        累積密度函數,累積密度函數,累積密度函數,機率與統計的這部分觀念沒搞清楚,
        結果在影像處理顯示出來,果真每個課程都很重要,且都是息息相關的呀!

2016年10月6日 星期四

03360652 閻美雅 HW01

美顏相機


【前言】

美顏相機是一款修圖APP,可讓智慧型手機化身為自拍神器!拍完照片即刻美顏,可選擇一鍵美顏,或只作些許微調,還可以長高高!有了它,隨手一拍都可以很好看!

【使用經驗分享】

操作過程:

這是一開始的起始畫面。

使用者可選擇「自拍」或「進階美顏」,其中自拍為馬上拍一張,而進階美顏則可以挑選現有照片進行修圖。另外,還提供了「視頻自拍」,可供使用者拍攝20秒以內影片,並附有靜音、特效、背景音樂等功能。
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
點選「自拍」。
使用者可選擇「特效」、「美顏」、「美妝」、「夢幻」等四種模式進行拍照。其中我比較喜歡的是美顏,因為它會幫你遮掉臉部小瑕疵,膚質瞬間 Level Up,讓你一秒變漂亮;而美妝會幫使用者自動上妝,我覺得比較適合大人使用,因為不管使用哪種風格的妝都不適合我,但是媽媽用起來卻非常好看!
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
點選「進階美顏」。
選擇好圖片後即可按「進入進階美顏」開始修圖。
這邊提供多種修圖功能,我是比較怕麻煩的人,所以都使用「一鍵美顏」。其附有許多風格,可依使用者喜好,選擇想要的樣式。

若有閒情逸致,下面有一整排的局部修圖功能任君挑選,還可以長高高!

任點選一個功能,進行局部調整。
假設已非常滿意現在的照片,
即可點選右上角「儲存與分享」。

看到這邊,表示你已完成並儲存你的進階美顏,還提供很多分享方式,可依自己需求做選擇,也可以不分享到任何平台,自己欣賞!

成果展示:

美顏前﹍
美顏後﹍
左、中為進階美顏;右為自拍,其中上為美顏,下為美妝。
P.S. 已經選擇最淡的美妝風格!

【使用後心得感想與回饋】

心得感想:

使用美顏相機APP,可以不用化妝就遮掉臉上的瑕疵,皮膚變白不說,痘痘什麼的通通不見了!讓自己看起來像是上了淡妝,藉以增加自己的自信,因此超級愛用!其實還挺好奇男生使用起來會是怎樣的情況。而它的視頻自拍也很好玩,加入特效及音效之後,華麗的視覺饗宴,讓影片看起來更為生動有趣!其他還有許多功能是上面經驗分享沒有的( 例如:增高功能,擁有讓你的腿看起來更為修長 之效果),等著大家自己去玩一玩,誠心推薦!

回饋:

看似簡單的美顏相機APP,裡面卻含有大量的影像處理技術,例如:去瑕疵可能運用某複雜運算計算出該區塊適當之顏色並加以取代、模糊化某區塊使肌膚看起來更為光滑、運用臉部辨識技術為我們的臉部上妝‧‧‧等等,身為領域相關的我,不應該只是用用此APP,更應該深入了解其中之影像處理技術。若將來有能力,希望也能自己做出一個類似、或擁有更多功能的APP供大家使用!