2008年12月18日 星期四

2008w15


從兩個禮拜之前開始計畫者期末專案的規劃,動作,以及實踐。以目前的進度,似乎跟規劃上有點落後,且由於逼近期末的關係,似乎也很難對專案作等價的時間加碼。
其中我最主要的功能是把彩色圖片的色彩拿掉,變成灰階。
再者是,對圖片作90度的翻轉。
對圖片做處理最困難的是顏色像素的計算方式,
以下是部分重要的function code
for(j=0;j {
ucMatrixR[i][j]=MatrixR[i][j];
ucMatrixG[i][j]=MatrixG[i][j];
ucMatrixB[i][j]=MatrixB[i][j];
Gray=(ucMatrixR[i][j]+ucMatrixG[i][j]+ucMatrixB[i][j])/3;
Image2->Canvas->Pixels[j][i]=RGB(Gray,Gray,Gray);
}


再者,處理圖像翻轉會發生的嚴重問題,是重複讀取相同記憶體,導致程式擋掉,所以要順利翻轉圖像,應該要先關閉之前的圖像,在把翻轉後的圖像從暫存器call近來,現在的問題點是。。。該如何把翻轉後的圖像存入暫存器,接下來把原始檔案關閉!?
for(i=0;i {
ProgressBar1->StepIt();
for(j=0;j {
ucMatrixR[i][j]=MatrixR[iImageHeight-i-1][iImageWidth-j-1];
ucMatrixG[i][j]=MatrixG[iImageHeight-i-1][iImageWidth-j-1];
ucMatrixB[i][j]=MatrixB[iImageHeight-i-1][iImageWidth-j-1];
Image2->Canvas->Pixels[j][i]=RGB(ucMatrixR[i][j],ucMatrixG[i][j],ucMatrixB[i][j]);
}

沒有留言:

張貼留言