读书人

水准垂直投影的

发布时间: 2013-01-05 15:20:39 作者: rapoo

水平垂直投影的
以下是我的原始code

void __fastcall TForm1::ButtonClick(TObject *Sender)
{
// ??水平与垂直方向的投影量



long ProjectV[2000] = {0};
long ProjectH[2000] = {0};
long Vmax = 0, Hmax = 0;
Byte *ptr;

for(int row = 0; row < 1279; row++)
{
ptr = (Byte *)Image1->Picture->Bitmap->ScanLine[row];
for(int col = 0; col < 1023; col++)
{
if(ptr[col*3] > 125) // 白?
{
ProjectV[col]++; // 垂直方向投影的?量+1
ProjectH[row]++; // 水平方向投影的?量+1
if(ProjectV[col] > Vmax) Vmax = ProjectV[col]; // ??垂直投影最大值
if(ProjectH[row] > Hmax) Hmax = ProjectH[row]; // ??水平投影最大值
}
}
}

// ?出水平方向投影
Image2->Canvas->Pen->Color = clWhite;
for(int row = 0; row < 1279; row++)
{
Image2->Canvas->MoveTo(Image2->Width, row);
Image2->Canvas->LineTo(Image2->Width * (1.0 - (double)ProjectH[row] / (double)Hmax), row);
}

// ?出垂直方向投影
Image3->Canvas->Pen->Color = clWhite;
for(int col = 0; col < 1023; col++)
{
Image3->Canvas->MoveTo(col, Image3->Height);
Image3->Canvas->LineTo(col, Image3->Height * (1.0 - (double)ProjectV[col] / (double)Vmax));
}

}


何行出以下息:

Acess violation address 00401CE8 in moudle 'Project.exe'.Read of address 017E001

[解决办法]
确定Bitmap的大小与格式是正确的。

读书人网 >C++ Builder

热点推荐