再問一個中值濾波的處理時間問題 |
尚未結案
|
bio
一般會員 發表:42 回覆:36 積分:20 註冊:2003-03-05 發送簡訊給我 |
大家好
中值濾波相信大家都已做過不少
但我的中值濾波處理的時間大致上要花到1~2.5秒之間
我處理的圖檔為640*480pixels
不曉得大家花的時間大致都多少
我的程式碼在下面,請大家幫我看一下哪裡可以改進
謝謝
對了 我是對RGB作處理 記得阿泰版主是對灰階做中值,
不曉得這樣時間會有差別嗎????? //---------------------------------------------------------------------------
int __fastcall TForm1:: MidFilterb(int i,int j)
{
int t,num=9;
int P1[9];
int x,y;
P1[0]=pb[i ][j];
P1[1]=pb[i+1][j];
P1[2]=pb[i+1][j+1];
P1[3]=pb[i][j+1];
P1[4]=pb[i-1][j+1];
P1[5]=pb[i-1][j];
P1[6]=pb[i-1][j-1];
P1[7]=pb[i][j-1];
P1[8]=pb[i+1][j-1]; for( x=num-2;x>=0;x--)
{
for( y=0;y<=x;y++)
{
if(P1[y]>P1[y+1])
{
t=P1[y];
P1[y]=P1[y+1];
P1[y+1]=t;
}
}
}
return (P1[4]);
}
//---------------------------------------------------------------------------
int __fastcall TForm1:: MidFilterg(int i,int j)
{
int t,num=9;
int P1[9];
int x,y;
P1[0]=pg[i ][j];
P1[1]=pg[i+1][j];
P1[2]=pg[i+1][j+1];
P1[3]=pg[i][j+1];
P1[4]=pg[i-1][j+1];
P1[5]=pg[i-1][j];
P1[6]=pg[i-1][j-1];
P1[7]=pg[i][j-1];
P1[8]=pg[i+1][j-1]; for( x=num-2;x>=0;x--)
{
for( y=0;y<=x;y++)
{
if(P1[y]>P1[y+1])
{
t=P1[y];
P1[y]=P1[y+1];
P1[y+1]=t;
}
}
}
return (P1[4]);
}
//---------------------------------------------------------------------------
int __fastcall TForm1:: MidFilterr(int i,int j)
{
int t,num=9;
int P1[9];
int x,y;
P1[0]=pr[i ][j];
P1[1]=pr[i+1][j];
P1[2]=pr[i+1][j+1];
P1[3]=pr[i][j+1];
P1[4]=pr[i-1][j+1];
P1[5]=pr[i-1][j];
P1[6]=pr[i-1][j-1];
P1[7]=pr[i][j-1];
P1[8]=pr[i+1][j-1]; for( x=num-2;x>=0;x--)
{
for( y=0;y<=x;y++)
{
if(P1[y]>P1[y+1])
{
t=P1[y];
P1[y]=P1[y+1];
P1[y+1]=t;
}
}
}
return (P1[4]);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Graphics::TBitmap *Bmp = new Graphics::TBitmap();
if( OpenPictureDialog1->Execute())
{
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName);
Bmp->Assign(Image1->Picture);
Edit1->Text=OpenPictureDialog1->FileName.SubString
(OpenPictureDialog1->FileName.LastDelimiter("\\")+1,OpenPictureDialog1->FileName.Length()); Byte *ptr;
for (int i=0;i
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |