我在对话框里面,添加一幅图,旁边设置一个按钮,单击按钮的情况下完成BMP图像的二值化
编写的子函数如下:
   bool CDib::ConvertToTwoValue()
{
DWORD i,size;
unsigned char *p;

         p = m_pDibBits;//当单步到这里时候p=0xcccccccc
size = m_dwDibSize - (m_pDibBits - m_pDib);//运行到这里size=0 for (i = 0; i < size;i++)
{
if (*p < 128)

*p = 0;
}
else
{
*p = 255;
}
p++;
}
return true;}
但是单步跟踪的时候出现错误,怎么回事?二值化程序还没运行就结束了,想不明白

解决方案 »

  1.   

    既然p = m_pDibBits;//当单步到这里时候p=0xcccccccc 
    显然你没有给m_pDibBits赋值或赋值不成功,图像数据取的不对,后面的操作肯定无法进行了
      

  2.   

    >>p = m_pDibBits;//当单步到这里时候p=0xcccccccc 
    显示m_pDibBits没有赋值或赋值不成功,无法取得图像数据,所以后面的工作无法进行
      

  3.   

    >>p = m_pDibBits;//当单步到这里时候p=0xcccccccc 
    显示m_pDibBits没有赋值或赋值不成功,无法取得图像数据,所以后面的工作无法进行
      

  4.   

    不好意思,csdn出问题了,哈哈
      

  5.   

    p=0xcccccccc 指向的地址有问题,m_pDibBits是不是被改变了????
      

  6.   

    p=0xcccccccc 指向的地址有问题,m_pDibBits是不是被改变了????
      

  7.   

    p=0xcccccccc 指向的地址有问题,m_pDibBits是不是被改变了????
      

  8.   

    m_pDibBits这个应该是你图片的图像数据吧 看看有没有正确读入、指向而且二值化一般要求为256色输入。