bool * sPoint;//特征点表
貌似 sPoint是一个指向表的指针,那怎么引用这个表里面的元素呢?输出这个表里面的所有元素怎么办??请高手赐教

解决方案 »

  1.   

    *(sPoint+i)或者sPoint[i]
    所有元素需要一个长度。
      

  2.   

    或者判断(bool*)(sPoint+i)是否为0
      

  3.   

    *sPiont或者 sPoint[0] //第一个元素
    *(sPoint + 1) 或者 sPoint[1]//第二个元素
      

  4.   

    不行啊,打印出来全是0,我用的%f格式打印,是不是不对???定义的时候为啥要用bool呢?
      

  5.   

    用BOOL 是不是和你的具体问题有关呢  想知道你的具体问题是什么  好奇中
      

  6.   

    ////将权不为0的记录下来 即为特征点//////////////// 
    DWORD pNum=0;//这里用来记录特征点总个数 
        for(j=0;j <m_DIB.Height();j++) 
    for(i=0;i <wB;i++) 

    tp=W+j*wB+i; 
    if (*tp>0.0) 
    {// sPoint[(m_DIB.Height()-j-1)*wB+(wB-i-1)]=1; 
    sPoint[j*wB+i]=1; 
        pNum++; //这一段是我自己写的 
    FILE *fp; if ((fp=fopen("result2004.txt","w"))==NULL) 

    printf("Can not open the file result.dat\n"); 
    exit(0); 

    fprintf(fp,"%d\n",sPoint[j*wB+i]); 
    fclose(fp); 
    fp = NULL; } 
    else 
    sPoint[j*wB+i]=0; 
    // sPoint[(m_DIB.Height()-j-1)*wB+(wB-i-1)]=0; 

    这个是程序的一部分,说是把特征点存在了表sPoint【length】中
      

  7.   

    bool 就true 和 false两个值。
    定义bool也就是说只需要两个值就可以表明所有的状态了。
    你那个sPoint有没有赋值过?
      

  8.   

    bool的值也就是非0和0两种情况。
      

  9.   

    ////初始化m_initial/////////////////////////////////////////////
    HDIB hDIB;DWORD length;
    if(m_DIB.NumColors()==0)
       length=(m_DIB.m_pBMI->bmiHeader.biWidth*8+31)/32*4*m_DIB.m_pBMI->bmiHeader.biHeight*3;
    else
    {
       length=(m_DIB.m_pBMI->bmiHeader.biWidth*8+31)/32*4*m_DIB.m_pBMI->bmiHeader.biHeight;
       sPoint=new bool[length];
       for (UINT i=0;i<length;i++) 
          sPoint[i]=0;
    }
    在这个地方初始化了以后就是在上面提到的程序段里算是赋值了,就是这一段
    ////将权不为0的记录下来 即为特征点//////////////// 
    DWORD pNum=0;//这里用来记录特征点总个数 
        for(j=0;j <m_DIB.Height();j++) 
    for(i=0;i <wB;i++) 

    tp=W+j*wB+i; 
    if (*tp>0.0) 
    {// sPoint[(m_DIB.Height()-j-1)*wB+(wB-i-1)]=1; 
    sPoint[j*wB+i]=1; 
        pNum++; } 
    else 
    sPoint[j*wB+i]=0; 
    // sPoint[(m_DIB.Height()-j-1)*wB+(wB-i-1)]=0; 
    }
      

  10.   

    在debug的watch窗口看看,sPoint值到底是什么
    或者用下面这段程序输出看看
    CString str = "";
    for(i = 0; i < length; i++)
    {
       CString temp;
       temp.Format("%d ", sPoint[i]);
       str += temp;
    }
      

  11.   

    sPoint的值只是0或者1,sPoint=new bool[length];这个定义有没有什么别的意思呢?定义sPoint的时候sPoint是个指针呀 bool * sPoint;//特征点表     程序里面这样写的..
    那就是也不知道sPoint[j*wB+i]=1; 
    这句是什么意思了
      

  12.   

    谢谢大家,问题已经解决了,朋友说的,其实坐标就是(i,j),循环体里面的那个,而sPoint是一个和整幅图像一样大小的表,输出坐标就输出ij就好了,谢谢大家热心帮助,分数大家平分了吧~~~