2013年11月17日 星期日

HW2

這次的作業....老實說我忘了是要用什麼
於是就把目前做的都先Show一次
至於說下面的排版....是因為截圖時沒注意到多了下面的白色區塊
為了不讓文章看起來太長
所以就先這樣排版Orz....
寫完這篇文章後發現Fliterㄙ做完了
但忘了拍下來
過兩天再補上
(雖然Fliter似乎是這禮拜說的....因該不是這次作業要展示的東西)
然後Memo是為了測試方便所放的
忘了將他移除掉
然後有些程式碼可以做一下修改
大致上差不多是這樣了
東西雖然前幾天都做好了
但是....這文章寫起來也不知道要寫些什麼內容
每次都要寫很久
所以拖到今天才開始寫

為了測試方便
所以一開始就有先寫死一個路徑給他
但是仍然可以自由地開啟圖檔
然後提供使用者能儲存修改後的影像
然後這是Inverse的功能....
老實說....赫然發現半夜看這東西還蠻可怕的
這是做了Level的功能
這次提供的示範
將原本50~200的像素值
變成了0~255的範圍









這是Level做出來的圖












接下來是實作Curve
我在功能列->Image->Curve 裡面給了個bool的變數
當按下Curve按鈕後
便會出現這段訊息
此時bool變數變成1
Level上的影像才可供使用者點選第三點
當影像處理完時
bool會自動鎖上
避免使用者造成奇怪的錯誤
(雖然我不知道會有什麼錯誤.....但為了安全起見  就給他上鎖吧)

這是Curve的圖













成果就變成這樣了
至於說為什麼都是這個人....
因為第一次寫這程式時他剛好換FB的大頭貼
所以...就偷偷把他給賣了









接下來就是Histogram了
這邊提供了放大與縮小的方法
至於原本為什麼是300
那是因為Rect的高度我是給300
所以當值經過
paint[0]=Histogram[0][i]*Magnification/Histogram_total[0];
的運算後
才會是0~300的值
其中paint[0]是畫在Rect上的藍色像素點
所有的0因該都是k
為了說明方便就先把它改成了0
Histogram[0][i]是藍色像素點在i位置上的數目
Magnification是倍率  預設300
Histogram_total[0]是藍色像素點的總數目(其實突然發現Histogram_total[]三個的值因該都是一樣的....過兩天再來更改)                                                                                                                                                                                           

至於這個圖就是....非累積的Histogram
由於計算方式的問題
所以如果Magnification給300
那會看不太出來
所以這時按了N次的放大
將倍率變成9600
這時才出現這樣的圖

沒有留言:

張貼留言