低通濾波邊緣問題 |
缺席
|
vincent763
一般會員 發表:2 回覆:0 積分:0 註冊:2008-07-27 發送簡訊給我 |
這是低通濾波的程式!
請大大幫我解決邊緣處理的問題! 因為跟別人的做法有點不一樣,所以不知從何下手! [code cpp] void __fastcall TForm1::BitBtn1Click(TObject *Sender) { double A[3][3]; double B1[3][3]; double B2[3][3]; double B3[3][3]; int i,j,x,y; int sum1,sum2,sum3; Bitmap1->Width=Image1->Width; Bitmap1->Height=Image1->Height; Bitmap1->PixelFormat=pf24bit; ptrS= new BGR*[Image1->Height]; //主 ptrT = new BGR*[Image1->Height]; //副 for ( j = 0; j < Image1->Height; j ) { ptrS[j] = (BGR *)Image1->Picture->Bitmap->ScanLine[j]; ptrT[j] = (BGR *)Bitmap1->ScanLine[j]; } //------------製作A[3][3]濾波器 ------------------- A[0][0]=0.11; A[1][0]=0.11; A[2][0]=0.11; A[0][1]=0.11; A[1][1]=0.11; A[2][1]=0.11; A[0][2]=0.11; A[1][2]=0.11; A[2][2]=0.11; //---------------------------------- for( j=1;j { for(int i=1;i { sum1=0; sum2=0; sum3=0; for(y=0;y<3;y ) { for(x=0;x<3;x ) { B1[y][x]=ptrS[y j-1][x i-1].b; B2[y][x]=ptrS[y j-1][x i-1].g; B3[y][x]=ptrS[y j-1][x i-1].r; sum1 =A[y][x]*B1[y][x]; sum2 =A[y][x]*B2[y][x]; sum3 =A[y][x]*B3[y][x]; } } ptrT[j][i].b= sum1; ptrT[j][i].g= sum2; ptrT[j][i].r= sum3; }//i }//j Image1->Picture->Assign(Bitmap1); } [/code] 程式上面已宣告struct BGR { byte b; byte g; byte r; }; 編輯記錄
vincent763 重新編輯於 2008-08-31 20:44:23, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |