顯示具有 96360670 吳旻璋 標籤的文章。 顯示所有文章
顯示具有 96360670 吳旻璋 標籤的文章。 顯示所有文章

2010年1月16日 星期六

HW8

從作業一到現在的最後一次的程式作業七

其實學到了很多東西

對於 BCB 也是有另一種程度的進步

因為之前只有稍微摸過 BCB 的部分

然而這次的應用也較為深入!

雖然大部分的作業都有了固定的公式可以去理解

但是不免還是要去網路上查一下應用的方式

畢竟光知道理論並不能瞭解程式運行的方式

所以不免發覺網路上很多的資源可以運用幫助程式的撰寫

而且BCB 的 code 與 C++ 是差不多的

所以在自己去學習應用的方面也滿快就能上手了!

上完了這學期的課

大致上能夠去學到一些圖片的處理應用原理

算是對圖片的程式修改能夠有更深入的認識了!

雖然時間過得很快,卻也發現學的很多!

HW7


這次的作業的公式相信不用再多說了

一樣這次的作業先採用 Sobel 的公式下去運算

不過我的數值設定採用的是自由輸入的方式並不寫死他

所以一樣設了兩個陣列下去動作

不過

不知道是程式碼哪裡設錯了

再跑彩色圖片的時候卻發現還是會有彩色的線條出現

所以一開始先設置了黑白圖片跑跑看結果


程式執行結果:


接著看看原圖吧!

原圖:


程式執行後的圖片結果:


接著後來想到

在網路上找資料的時候有找到討論線條並不銳利的問題

然後無意間在試著將彩色線條給除掉的過程中

發現可以將不清晰的線條淡化掉

讓比較明顯的線條出現

做到類似銳利化的效果

將線條類銳利化的結果圖:


但是不可避免的還是要回頭看看彩色圖片的部分

至於彩色線條的解決方法似乎還要花點時間去了解

彩色原圖:


經過程式處理後的結果圖:


執行一點銳利處理讓線條清晰點吧!

處理後的圖片:


雖然說試了很多天

而且也知道用上次的作業就可以將此次的作業完成

但是卻還是不能解決彩色線條的問題

所以還是決定先將執行結果上傳

再慢慢想辦法!

2010年1月14日 星期四

HW6

第六次的作業呢是以Spatial filter 為主題

這次的作業雖然說一開始有老師的範例程式碼幫助

但是一開始所設置的部分是以黑白圖片為主的變化

一旦換作是彩色圖片就會呈現圖片只跑三分之一的狀況

所以修改了部分程式碼

將原本的判定設為掃描三次圖片

讓整張圖片呈現完整的狀況

但是黑白圖片畢竟成像和彩色圖片不同

所以即使掃描圖片三次成功的讓圖片完整呈現

也會發生顏色不對的狀況

因為一開始在跑三分之一圖片的時候

發現都是出現單一顏色的狀況

所以除了單單作跑三次掃描乘三次迴圈之外

另外在顏色加乘的地方需要再加上數值改變的情形

修改前原本程式碼:

POriIma0[j-1]

修改後的程式碼:

Mask1*bPOriIma[(j-1)*3+k]

接著在設定公式的方面我採用的是:

1  2  1
2  4  2
1  2  1
 
所以對於模糊的變化量並不會很明顯,圖片要放大點才顯得出效果!

很明顯的看到下圖執行後的結果:


在數字儀表板數字以及方向盤上的英文字可以明顯的發現

左邊原圖的字體較為清晰

而右邊經過 Spatial filter 修改過的圖片字體較為模糊了


為了方便原圖比較所以我將圖片另存讓大家比較

修改後:



修改前:


這次作業說難並不難

只是要多想想要怎樣將圖片原本的黑白輸入修改

變成彩色的輸入修改

這樣就可以簡單完成了!


2009年12月17日 星期四

HW5

這次的作業五其實上禮拜五就已經大概把程式碼弄出來了,但是怎麼想就是不知道為什麼在擷取第八張圖的時候會是全黑的畫面,但是後來想到其實起始值並不是要從 1 次方開始跑的阿,才想通這個道理。這次的作業從網路上搜尋到不少的資料,也了解到是要利用位移和比對 (and) 的方式,作圖形的位元分析,利用每次位移 2 的次方數,以及與 0x01 做比對的方式讓圖形產生,還有要讓程式判斷顏色後產生黑白。之前會產生全黑的畫面是因為 8 位元的灰階影像也只會產生到 2 的 7 次方次數的階層位移,一旦超過了就沒有顏色在階層內,我是讓程式判斷沒有顏色就是全黑的畫面,所以超過 8 層後的畫面皆是黑色的。我去下載書中的原圖 (官方網站) ,因為畫面的關係,所以把圖給縮小了,所以顏色有些 loss 掉,故結果會和原圖大小的結果 (書中的結果) ,有些許不同,然後以下是各個階層產生的結果:


STEP.1 第一階層圖層

STEP.2 第二階層圖層

STEP.3 第三階層圖層

STEP.4 第四階層圖層

STEP.5 第五階層圖層

STEP.6 第六階層圖層

STEP.7 第七階層圖層

STEP.8 第八階層圖層

然後我另外有用原本的圖做分析,來測試看看結果是否與書中相似
結果似乎相差不大呢!

最後當然要另外找圖試試看囉!
不過結果似乎是對了,但是分析後的圖層不知道是不是長這樣....

2009年12月4日 星期五

HW3

這次的作業上雖然在取RGB值的方面只要依照先前的作業
就可以輕鬆的得到!
但是我自己本身在畫圖的方面不知道要用什麼程式碼去撰寫
於是花了一些時間去搜尋!
後來在GOOGLE上找到了相關的程式碼
利用之前學長提到的 moveto() 和 lineto()
完成了這次作業!
但是在輸出結果方面似乎無法呈現出與 PS 類似的直方圖
所以數據方面還要在多了解以後再進行調整!

Blue:


Green:

Red:

2009年11月27日 星期五

HW4

第四次作業的部分是討論有關於GAMMA值的變換
參考運用的公式為 S = C (r ^ gamma)
一開始打程式碼的時候
因為忽略掉了 C 值的常數部份
採用常數預設 "1"
所以一開始所產生的結果有點糟糕
變成 RGB 都會產生超過 255 的結果
所以後來看到學長所提的必須將色素限制在 255 以內
雖然當初老師有提到這部分的問題
可是不太理解要怎樣限制住
回去看自己撰寫程式碼的部分
發現雖然有將限制條件加入
但是放置的位置錯誤
導致重複加乘所以結果錯誤
多次嘗試後結果是正確了
但是卻又發生執行第一次後
如果再次執行會產生圖片不斷的加深或加淡
因為在設定的程式碼部份我是將執行的公式直接放在畫布產生的地方
所以讓預設的 PIXEL 不斷的被覆蓋過去
之後在設定一組新的陣列讓設定過的 PIXEL 放入新的空間中後再放入畫布
結果就成功了!


GAMMA:5

GAMMA:0.5
產生後的結果雖然可以讓圖片更深或是更淺
但是相對的會發生圖片失真或是解析度下降的問題!

2009年10月16日 星期五

HW2

在這次的作業方面
因為先前接觸BCB的次數並不多
且並未嘗試過選轉圖片的功能
所以這次除了自己去搜尋資料外
也必須請教同學有關於旋轉公式的部分
所以也是得知了sin以及cos的應用後才知道如何旋轉
因為也是第一次使用圖片的互相讀取部分
所以也花了一些時間去理解除了開圖檔外的互相圖檔讀取的code
這次利用的角度公式除了課本上的提供外
另外查詢了網路上資訊網站的用法

x = (int)( ( i - xcenter )*cos - ( j - ycenter )*sin + xcenter )
y = (int)( ( i - xcenter )*sin+ ( j - ycenter )*cos + ycenter )

於公式中的X以及Y中心點
因為旋轉的關係所以如果直接抓取圖片的中心點的話
會產生圖片顯示不完整以及顯示的陣列存取點顯示在不是我們想要的位置
所以在 i 以及 j 的存取點扣除顯示的部份要另外算
而且在最後加上圖片的中心點也要依照自己設定的Image2做更改動作

旋轉-45度角的結果:





因為經過換算的存取點有點計算錯誤,所以導致圖片有點被壓縮成正方形了


旋轉角度45度:




同樣是以45度去作旋轉
但是每個參考的存取點都不相同
所以即使旋轉的角度相同
但是旋轉的方向不同
就要另外去計算中心點的狀況
這算是這個公式的缺點之一
所以就初步的旋轉動作是成功了
但是要正確的將圖片顯示出來就必須另行運算多次才能成功
算是還需加強的部分

2009年10月2日 星期五

hw1


照著老師的做法很順利的做出了讀檔的動作
但是對於將RGB讀取的部分
雖然了解並儲存了RGB的數值
但是尚未順利將讀取到的結果順利顯示出來
所以暫時只有將讀出圖檔的結果做出
這次算是對BCB的初步接觸
所以對於功能應用的部分還不是很了解
所以希望能夠再繼續研究多一點
做到老師想要做到的成果