作者crowneva (eva)
看板C_and_CPP
標題[問題] bcb影像處理方面的問題
時間Tue Sep 15 21:02:36 2009
請問各位...
我要寫一個3*3的mask
將周圍8個當成z中間是d
將影像的像素值0~255輸出在txt檔
但是我這樣寫的結果是
前面的z都是0
只有d是正確的
有人可以幫我解開我的疑惑嗎
謝謝~
OpenPictureDialog1->Execute() ;
Image1->Picture->LoadFromFile(OpenPictureDialog1->FileName) ;
int i,j,z,d,p[10],h,w,x;
Graphics::TBitmap *Bmp = new Graphics::TBitmap();
Byte *ptr;
Bmp->Assign(Image1->Picture->Bitmap);
AnsiString FileName;
FILE *fp;
SaveDialog1->Filter = "文字文件 (*.txt)|*.TXT";
SaveDialog1->DefaultExt="txt";
if(SaveDialog1->Execute())
{
FileName = SaveDialog1->FileName;
}
fp = fopen(FileName.c_str(),"w");
for(h=0;h<Bmp->Height;h++)
{
ptr = (Byte *)Bmp->ScanLine[h];
for(w=0;w<Bmp->Width;w++)
{
p[1]=p1[i-1][j-1];
p[2]=p1[i][j-1];
p[3]=p1[i+1][j-1];
p[4]=p1[i-1][j];
p[9]=p1[i][j];
p[5]=p1[i+1][j];
p[6]=p1[i-1][j+1];
p[7]=p1[i][j+1];
p[8]=p1[i+1][j+1];
for (int x=1;x<9 ;x++)
{
p1[i][j]=ptr[w];
z=p[x];
fprintf(fp, "%d ", z);
}
d=p[9];
fprintf(fp, "%d ", d);
fprintf(fp, "\n");
}
}
fclose(fp);
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.171.114.217
1F:推 VictorTom:p1在哪裡??i和j又是打裡給值的??把自己的程式碼整理好 09/15 21:35
2F:→ VictorTom:在貼上來好唄....~_~ 09/15 21:37
3F:→ crowneva:剛開始寫程式,可能想的太天真了,SORRY 09/15 22:02
4F:推 VictorTom:應該沒什麼天不天真的, 從描述是程式可以跑了, 只是貼出 09/15 22:07
5F:→ VictorTom:來的部份顯然不完整, 這樣不容易看到底發生什麼問題@_@" 09/15 22:08
6F:→ crowneva:恩,我改好了,也可以順利執行了,3Q~ 09/15 22:27