作者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