期末心得:
一開始選這門課時,很擔心
因為上學期選了視訊程式
覺得BCB很難寫。
經過一個學期下來
寫了這七個作業
覺得對BCB更了解了
也很感謝同學的幫忙。
在影像處理讓我覺得最神奇的地方
是老師上課是邊用Photoshop輔助
以前想要修改照片時
都是隨便按一按
上了這堂課後
才知道每個功能是做什麼用的。
讓我回家以後忍不住下載photoshop來玩。
也了解了很多關於影像處理的概念
包括對比、柔化、銳利..這些平常常用到的功能。
這是我覺得這門課最有趣的地方。
這學期有幾堂課沒去上課
後果就是要自己看書看很久
還要一直問同學
因此覺得很不好意思
期許自已以後可以好好的準時上課。
作業繳交的方式
覺得很好
尤其是在寫心得時
考驗自己對這個作業了不了解
為了要寫出重點
也查了很多資料
所以在寫心得的時候
會幫助自已更了解概念。
2010年1月17日 星期日
2009hw6
這次的作業是空間濾波器的實作
出來的圖片像被柔化後的效果。
原理:
將遮罩中所有像素值加總後求其平均,然後寫入遮罩中間的對應
像素中。所以一次只處理一個像素的值。
先分成3x3的矩陣,然後用輸入的方式來決定中間的像素
會受到旁邊像素值影響的比例,最後輸出。
所以如果周圍的比例很低的話,會和原圖很像。
結果畫面:
執行的介面(彩)
(灰)
用判斷圖片為8bit或24bit來分別處理灰階和彩圖。
if(Image2->Picture->Bitmap->pixelformat==pf8bit)
if(Image2->Picture->Bitmap->pixelformat==fp24bit)
結果:
(原圖)
(濾波後)
出來的圖片像被柔化後的效果。
在對顏色取值時,一開始都怪怪的
後來翻書和google以後
才知道在取顏色時是用+3的方式
例如取藍色,先取i後再用i+3取下一個像素的值
rimageb[i]=oimageb[i-3]*f1+oimageb[i]*f2+oimage[i+3]*f3+.......;
2010年1月8日 星期五
2010年1月7日 星期四
2009hw4
這次的作業是做gammar值的轉換
利用不同的gammar值調整對比明暗度
找出圖片色彩的最大值和最小值,經由調整過後,將值落在0~255之間。
藉由調整影像色彩來改變圖的對比。
公式為: 255/255^g=s/r^g
r為原本的色彩
s為調整後的色彩
g為gammar值
當gammar值等於1時,是原本的圖
當gammar值小於1時,亮度就會變亮
當gammar值大於1時,亮度就會變暗
程式方面流程是先轉換值後,原本的圖再根據值來輸出後來的圖片。
結果:
gammar=1,原本的圖
gammar=0.5,顏色變淡變亮
gammar=2,顏色變深變暗
寫作業時
本來都會直接複製老師的程式
想要看看結果是什麼
可是因為都不是完全的程式
所以都會有地方要改
後來覺得要自已了解程式的意思才能寫出來
都要一直請教同學
很不好意思但也很謝謝他們。
---------------------------------------
在寫程式時
有一個錯誤的訊息是
E2034 Cannot convert'AnsiString' to 'float'
後來加上StrToFloat這個函數就好了
之後寫程式時也常遇到這個訊息= =
---------------------------------------
記得在寫公式的時候
寫了GA[i]=(i^g)*255/255^g;
程式是之前寫的
錯誤訊息沒有留住
大概是說illegal之類的
後來問同學才知道程式不是用"^"的方式
要用pow函式
所以要寫成GA[i]=(pow(i,g)*255/pow(255,g));
這樣才會過
2009年12月17日 星期四
2009hw3
一開始要做時
不知道要用什麼元件
查了一下網路
才知道可以用image畫出直方圖
image1->Canvas->Pen->Color
再來是寫抓圖片的色彩值
用int iHistogram[3][256]來存
最後再畫出來
一開始在設定radiogroup時
一直找不到在裡面加入RBG選項的方法
後來才知道是在items的地方加入
很簡單的方法可是也可以搞很久。
結果:

MoveTo和LineTo
imHistogram->Canvas->Move(i*2+1,300);
是設定起始位置
i*2+1是每隔以個單位做為起點
t=int((float(iHis[rgHisCha->ItemIndex][i]*fHisSc)+0.5);
t是色彩值的個數*某個比例取四捨五入
因為怕他過多
所以*比例讓他縮小
寫這個程式時
一開始在課堂上聽時
覺得計算顏色聽起來一點都不難
應該可以很快寫出來
就拖了很久
後來要開始寫時
發現在畫圖的地方很不會寫
還要一直參考老師的程式
在寫程式時很多的小細節就算沒完成
結果還是不能出來的
所以要知道很多函式才行
不知道要用什麼元件
查了一下網路
才知道可以用image畫出直方圖
image1->Canvas->Pen->Color
再來是寫抓圖片的色彩值
用int iHistogram[3][256]來存
最後再畫出來
一開始在設定radiogroup時
一直找不到在裡面加入RBG選項的方法
後來才知道是在items的地方加入
很簡單的方法可是也可以搞很久。
結果:

MoveTo和LineTo
imHistogram->Canvas->Move(i*2+1,300);
是設定起始位置
i*2+1是每隔以個單位做為起點
t=int((float(iHis[rgHisCha->ItemIndex][i]*fHisSc)+0.5);
t是色彩值的個數*某個比例取四捨五入
因為怕他過多
所以*比例讓他縮小
寫這個程式時
一開始在課堂上聽時
覺得計算顏色聽起來一點都不難
應該可以很快寫出來
就拖了很久
後來要開始寫時
發現在畫圖的地方很不會寫
還要一直參考老師的程式
在寫程式時很多的小細節就算沒完成
結果還是不能出來的
所以要知道很多函式才行
2009hw2
2009年10月1日 星期四
2009hw1
本課程第一個作業是: 開啟並讀取一張影像到二維陣列中。
流程是:
先讀取一張圖片,然後宣告三個二維陣列來儲存這些色彩資料。
遇到的問題:
一開始最先遇到的問題,是不太懂bcb的語言,像是把值用label顯示出來。
後來查了一些資料後,就比較會寫。
結果:
(開啟時)

(開啟後)

OpenPictureDialog1->Execute();
是選定希望開啟的影像
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
將影像顯示到Image1這個影像物件中
IMatrixR[i][j]=GetRValue(Image1->Canvas->Pixels[j][i]);
將每個像素的值讀出
存入二維陣列中
這次作業因為在課堂上老師有一步一步的示範怎麼做
所以在課堂上跟著做就做出來了
也介紹了一下一些按鈕
才知道怎麼用
後來寫心得時看到很多人的心得上面有秀出RBG值
本來想說第一個作業是只有開啟影像和讀取影像到陣列
以為是自已搞錯了
就上課問了老師
意外學會了用OnMouseMove的用法
是在Event的地方
點二下就進去了
下面是滑鼠移到哪裡就秀出RBG值:
流程是:
先讀取一張圖片,然後宣告三個二維陣列來儲存這些色彩資料。
遇到的問題:
一開始最先遇到的問題,是不太懂bcb的語言,像是把值用label顯示出來。
後來查了一些資料後,就比較會寫。
結果:
(開啟時)

(開啟後)

OpenPictureDialog1->Execute();
是選定希望開啟的影像
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
將影像顯示到Image1這個影像物件中
IMatrixR[i][j]=GetRValue(Image1->Canvas->Pixels[j][i]);
將每個像素的值讀出
存入二維陣列中
這次作業因為在課堂上老師有一步一步的示範怎麼做
所以在課堂上跟著做就做出來了
也介紹了一下一些按鈕
才知道怎麼用
後來寫心得時看到很多人的心得上面有秀出RBG值
本來想說第一個作業是只有開啟影像和讀取影像到陣列
以為是自已搞錯了
就上課問了老師
意外學會了用OnMouseMove的用法
是在Event的地方
點二下就進去了
下面是滑鼠移到哪裡就秀出RBG值:

訂閱:
文章 (Atom)