程序中出现异常错误
exception error in program
int maxNum(int *n)
{
int Maximum = n[0];
for(int i = 1; i <= 8; i++)
{
if( Maximum < n[i] )
Maximum = abs(n[i]);
}
return Maximum;
}
void DibHomoginityDetect(CDib& dib)
{
register int i,j,x[8];
int w = dib.GetWidth();
int h= dib.GetHeight();
CDib cpy =dib;
BYTE** ptr1 = dib.GetPtr();
BYTE** ptr2 = cpy.GetPtr();
for(j = 1;j<h-1;j++)
{
for(i=1;i<w-1;i++)
{
x[1]= (ptr2[j][i]-ptr2[j-1][i-1]);
x[2] =(ptr2[j][i]-ptr2[j-1][i]);
x[3] =(ptr2[j][i]-ptr2[j-1][i+1]);
x[4] =(ptr2[j][i]-ptr2[j][i-1]);
x[5] =(ptr2[j][i]-ptr2[j][i+1]);
x[6] =(ptr2[j][i]-ptr2[j+1][i-1]);
x[7] =(ptr2[j][i]-ptr2[j+1][i]);
x[8] =ptr2[j][i]-ptr2[j+1][i+1];
//assign the central pixel of window to image central pixel
ptr1[j][i] = (BYTE)maxNum(x);
}
}
}
这个程序有什么问题..据我了解它应该可以工作,但我收到异常错误...
任何人都可以告诉我,我在哪里犯了错误.. .. 谢谢
从代码中很难分辨出来,但我想你的 for 循环应该真的是:
for(int i = 0; i < 8; i++)
C++ 中的数组从零开始索引,而不是从 1 开始索引。
不知道这是否导致了错误:
for(j = 1;j<h-1;j++)
{
for(i=1;i<w-1;i++)
{
x[1]= (ptr2[j][i]-ptr2[j-1][i-1]);
x[2] =(ptr2[j][i]-ptr2[j-1][i]);
x[3] =(ptr2[j][i]-ptr2[j-1][i+1]);
x[4] =(ptr2[j][i]-ptr2[j][i-1]);
x[5] =(ptr2[j][i]-ptr2[j][i+1]);
x[6] =(ptr2[j][i]-ptr2[j+1][i-1]);
x[7] =(ptr2[j][i]-ptr2[j+1][i]);
x[8] =ptr2[j][i]-ptr2[j+1][i+1];
//assign the central pixel of window to image central pixel
ptr1[j][i] = (BYTE)maxNum(x);
}
}
似乎 x[1]...x[8] 将始终是i=w-2
和j=h-2
时的值
相关文章:
- VisualC++ 2010 有没有办法找出有关未处理异常错误的更多详细信息
- 打开CV异常错误,尽管我的代码是正确的
- 异常错误C++ //Visual Studio
- 提升序列化异常错误
- 返回内存异常错误的矢量
- 使用用户定义的函数查找完美数时出现浮点异常错误
- cv::内存位置出现异常错误
- OpenCV未经处理的异常错误
- 分数简化算法,浮点异常错误
- 为什么我会收到浮点异常错误
- 文本框为空时,C++Windows窗体应用程序出现未处理的异常错误
- 文本框为空时C++ Windows 窗体应用程序未处理的异常错误
- 函数传递映射时出现异常错误
- 在MS Visual Studio 2010上使用带有Cuda互操作的OpenGL缓冲区时出现异常错误
- 未处理的异常错误
- C++:关闭控制台应用后出现异常错误
- 写入对象时运行时引发异常错误
- C++ C# 包装器空异常错误
- Coin3D(Open Inventor)中出现未处理的异常错误
- Stack Pop()函数出现未处理的异常错误