顯示具有 99360816 張育瑋 標籤的文章。 顯示所有文章
顯示具有 99360816 張育瑋 標籤的文章。 顯示所有文章

2015年1月4日 星期日

99360816 張育瑋 HW5


YUV色彩圖
Y值預設為128

使用投影片上MSDN的轉換公式
其中clip似乎C++函式庫沒有
所以是自己另外寫的
程式只是傳一整數值進去
若大於255回傳255
小於0回傳0
其他則回傳傳入的原始值

===========================================================

接下來調整圖片色調就不知道寫的對不對了
我的做法是先抓滑鼠點到那個像素的RGB值
再來以這3個值作為輸出值的上限(作業3的公式)
各作一次色階調整
最後可以得到色調改變為指定顏色的圖片

這邊色階調整是將輸出值的上限
分次改為指定的RGB的值
分別作"3次"
所以程式很冗長
應該有更好的寫法

選取藍色後圖片的色調改變

改變Y值可以得到新的YUV圖

點選粉紅色改變色調

結果圖

===========================================================

1/09更新

跑去看別人的程式碼
當時上課睡著沒聽到正確的做法
原來是先以原圖的RGB轉成亮度(Y值)
接著以該Y值及滑鼠點選該點的U, V值轉出新的RGB值
最後指定給新圖就好了
這樣改完程式碼短很多

===========================================================


99360816 張育瑋 HW4

這次程式寫的4個濾波器和胡椒鹽雜訊

胡椒鹽雜訊

在載入圖片加上胡椒鹽雜訊後
程式是參考這裡的MATLAB程式碼寫出來的

演算法會產生一個用亂數給定0~255之間的值的陣列
接著以此作為遮罩(是遮罩吧?)
並依iWhite和iBlack的設定值決定迴圈跑到的像素是否改成白點或黑點

===============================================================

平滑濾波器

一次讀取9個像素
不加任何權重
全部RGB色彩值相加後除以9
再將平均值指定給中間的像素

執行前

執行後

===============================================================

有加權的平滑濾波器

中間像素及其上下左右的像素值都加上權重
這樣中間的像素值的影響就會加重
RGB值相加後同樣取平均
再指定給中間的像素

執行前

執行後
和沒有加權重的比起來稍為清楚一點

===============================================================

中值濾波器

一次讀取9個像素
排序後取中間值
再存至中間像素

取中間值的函數
使用插入排序法排序

執行前

執行後

===============================================================

銳化空間濾波器

數學的部分聽不太懂...
所以就直接用結論得出的遮罩寫程式了
程式寫法和前面的平滑濾波器一樣
只是將權重更改為上圖而已

執行前

執行後

===============================================================

2014年12月2日 星期二

99360816 張育瑋 HW3

Level調整的介面
用了4個Track Bar調整色階輸出入的上下界
另可直接用Edit輸入要用的值

調整好上下界後
按下Apply後
程式便會讀取所有輸出入的上下界值

程式中前兩個if判斷式用來判別
若小於Input Min則輸出為Output Min
若大於Input Max則輸出為Output Max
而介於兩者間的其他值則以下列公式換算
即可得到每個輸入色階對應的輸出值

iLevelTable[i] = 
iOutputMin + (i - iInputMin)* (iOutputMax - iOutputMin)/(iInputMax - iInputMin);
i值 = 0~255

算完後再查表更新圖片
結果如下

結果(1)

結果(2)

 =======================================================================

Curve調整的介面
可直接點Image物件調整曲線

在此利用了幾個Image的Event Handler

<MouseDown>
點下滑鼠左鍵時
會抓滑鼠游標的XY座標
設定CurveMouseDowned為true
並計算及繪製曲線一次

<MouseMove>
游標在Image物件內移動
若CurveMouseDowned為true
即有按著滑鼠左鍵時
隨游標的移動
不斷的重新計算及繪製曲線

<MouseUp>
放開滑鼠左鍵
即設定CurveMouseDowned為false
如此一來游標移動時便不會更動曲線

在決定曲線後
按下Apply
程式就會以iCurveTable對圖片做調整
結果如下

結果(1)

結果(2)
========================================================================


這是另外做的直方圖均值化
將RGB的色階出現機率分別計算完
並儲存在dCumulative陣列內
接著計算255*dCumulative[j][i]
j=0~2, i=0~255
計算完存入iEqualization陣列
最後以查表法更新圖片即可完成直方圖均值化

2014年10月25日 星期六

99360816 張育瑋 HW2


程式的基本介面
左側顯示圖片
右側顯示直方圖和統計數字


Color Histogram


CDF

PS內建的Histogram比較圖

2014年10月10日 星期五

99360816 張育瑋 HW1


  • 軟體名稱:Pho.to Lab
  • 軟體語言:簡體中文
  • 開發人員:VicMan LLC
  • 軟體性質:免費軟體
Pho.to Lab是一款功能簡單但選擇多樣的照片後製軟體
它提供了常見的各種濾鏡和邊框效果

像是濾光片,畫作風格特效以及簡單的邊框等



除此之外也有一些特別主題的選項


以下為頭像部分的簡單使用流程

先選擇功能

由左至右三個按鈕可以
1)使用相機拍照
2)自手機選擇相片
3)自社群網路Facebook或Instagram選擇相片

在此畫面可裁切相片

成品