2009年11月4日 星期三

HW2

前兩週身體去檢查,照了胃鏡看了診斷報告,是胃潰瘍啊!
在此呼籲大家,正常飲食、多吃蔬果、少熬夜,免得跟我一樣。
醫生說再嚴重一點就是胃出血,要住院,且會提高罹癌機率。
請大家好好愛護身體。

接下來就是本週作業課題

目前,網路欠佳,圖片根本無法上傳。
(房東問題...且網路線被貓咬好幾個洞...傳圖會卡在上傳,就先打心得,日後補上)
因為阿吉的提醒,所以在上課的時候就把fopen、fseek、fread給搞定,老是忘了宣告辯數跟標頭檔,之類的壞習慣,一定要改過來。現在,關於BMP檔案的型態與內容都可數據化,因此在做各種BMP圖檔的轉換就更加明瞭。之前把老師交的黑白和灰階寫入同一個Form了,讓我有種在做影像編輯軟體的FU,但都忘了程式要放呆,有時超出限制,電腦就整個大當機,搞到我都快哭了。

再來就是我自己加進去的東西
加入了翻轉影像,水平翻轉與垂直翻轉
之前使用Image1->Picture->Bitmap->Width(Height)來了解影像的長寬,而我利用了I[x][y]與O[x][y]來代表翻轉前與翻轉後的影像在[x][y]像素的數值,0<=x<=Width-1,0<=y<=Height-1,
他們之間的垂直關係為
O[x][Height-1]=I[x][y]
而水平翻轉的關係為
O[Width-1][y]=I[x][y]

其中我是使用Canvas元件來處理
步驟是
1.產生新Bitmap元件
2.將TempBitmap指向這元件,因為要儲存轉後結果
3.將TheBitmap只向原始影像
4.將原始影像先複製到目的影像
5.利用Canvas執行翻轉
Width=TheBitmap->Width;
Height=TheBitmap->Height;
for(int y=0;y< Height;y++)
 for(int X=0;y< Width;x++)
 TempBitmap->Canvas_>Pixels[x][y]=TempBitmap->Canvas_>Pixels[Width-1-x][y];
6.在將結果傳回原始影像中
7.在去除TempBitmap指向的Bitmap元件

上述就是我的水平翻轉囉!!
感覺我根本就是在做小畫家,又回到我的專研題目了說.....

1 則留言: