蔡氏演算法相機校正程式 |
尚未結案
|
hovell999
一般會員 發表:1 回覆:0 積分:0 註冊:2009-05-22 發送簡訊給我 |
各位先進大家好:本人現在在寫相機校正問題!程式運行後如下圖有下列黑色區塊產生,煩請各位給予指教!!
本人參考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;y { ptr0=(Byte*)TempBitmap1->ScanLine[y]; for(int x=0;x { ptr0[3*x]=0; ptr0[3*x 1]=0; ptr0[3*x 2]=0; } } //--------------------使用蔡氏演算法搬移--------------------------- for(int y=0;y { Yd1=y-Cy1; for(int x=0;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(); |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |