線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1727
推到 Plurk!
推到 Facebook!

蔡氏演算法相機校正程式

尚未結案
hovell999
一般會員


發表:1
回覆:0
積分:0
註冊:2009-05-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-10-20 15:51:40 IP:140.118.xxx.xxx 訂閱
各位先進大家好:本人現在在寫相機校正問題!程式運行後如下圖有下列黑色區塊產生,煩請各位給予指教!!

本人參考http://delphi.ktop.com.tw/board.php?cid=168&fid=921&tid=49374但是效果卻不一樣!!

Graphics::TBitmap *TheBitmap1,*TempBitmap1;
TempBitmap1= new Graphics::TBitmap();
TheBitmap1= new Graphics::TBitmap();
TempBitmap1->PixelFormat =pf24bit;
TheBitmap1->PixelFormat =pf24bit;
TheBitmap1->Assign(Image1->Picture->Bitmap);
TempBitmap1->Width=TheBitmap1->Width;
TempBitmap1->Height=TheBitmap1->Height;
//-----------------------宣告------------------------------------
float a,k,Cx1,Cy1,Xd1,Xd2,Yd1,Yd2;
Cx1=TheBitmap1->Width/2;
Cy1=TheBitmap1->Height/2;
Byte *ptr0,*ptr1;
k=StrToFloat(Edit1->Text);
//---------------------把圖檔變全黑--------------------------------
for(int y=0;yHeight;y )
{
ptr0=(Byte*)TempBitmap1->ScanLine[y];
for(int x=0;xWidth;x )
{
ptr0[3*x]=0;
ptr0[3*x 1]=0;
ptr0[3*x 2]=0;
}
}
//--------------------使用蔡氏演算法搬移---------------------------
for(int y=0;yHeight;y )
{
Yd1=y-Cy1;
for(int x=0;xWidth;x )
{
Xd1=x-Cx1;
a=(abs(Xd1)^2 abs(Yd1)^2);
if(Yd1>=0&&Xd1>=0)//--------------第四象限
{
TempBitmap1->Canvas->Pixels[(Cx1 abs(Xd1)*(1 k*a))][Cy1 abs(Yd1)*(1 k*a)]=TheBitmap1->Canvas->Pixels[x][y];
}
else if(Yd1>=0&&Xd1<0)//--------------第三象限
{
TempBitmap1->Canvas->Pixels[(Cx1-abs(Xd1)*(1 k*a))][Cy1 abs(Yd1)*(1 k*a)]=TheBitmap1->Canvas->Pixels[x][y];
}
else if(Yd1<0&&Xd1<0)//--------------第二象限
{
TempBitmap1->Canvas->Pixels[(Cx1-abs(Xd1)*(1 k*a))][Cy1-abs(Yd1)*(1 k*a)]=TheBitmap1->Canvas->Pixels[x][y];
}
else//--------------第一象限
{
TempBitmap1->Canvas->Pixels[(Cx1 abs(Xd1)*(1 k*a))][Cy1-abs(Yd1)*(1 k*a)]=TheBitmap1->Canvas->Pixels[x][y];
}
}
}
Image1->Picture->Bitmap->Assign(TempBitmap1);
Repaint();
編輯記錄
hovell999 重新編輯於 2009-10-20 15:53:06, 註解 無‧
hovell999 重新編輯於 2009-10-20 15:54:09, 註解 無‧
hovell999 重新編輯於 2009-10-20 15:55:44, 註解 無‧
hovell999 重新編輯於 2009-10-20 15:56:43, 註解 無‧
hovell999 重新編輯於 2009-10-20 17:02:30, 註解 無‧
hovell999 重新編輯於 2009-10-21 15:59:35, 註解 無‧
系統時間:2024-04-27 8:52:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!