扫描图像内存出错的问题
BitmapData bitData = bitImage.LockBits(new Rectangle(0, 0, bitImage.Width, bitImage.Height),ImageLockMode.ReadOnly, PixelFormat.Format8bppIndexed);
int width = bitData.Width;
int height = bitData.Height;
int stride = bitData.Stride;
byte* scanStart = (byte*)bitData.Scan0.ToPointer();
//用于统计图像每列的黑色点数
int[] xNormal = new int[width];
for (int i = 0; i < width; i++)
{
byte* vol = &scanStart[i * stride];
for (int j = 0; j < height; j++)
{
if (vol[j] == 0)
{
xNormal[i]++;
}
}
}
bitImage.UnlockBits(bitData);
这里是二值化后的黑白图像的投影峰谷图统计,而按列扫描的话,中途(也就表示没有超出图像的宽/高度和扫描跨度)出现如下图所示的错误:
反而我改用按行扫描的话,从头到尾都没有出现内存错误的问题!
急,谁能帮我解决????