请问这个定义是什么意思? bool * sPoint;//特征点表 bool * sPoint;//特征点表貌似 sPoint是一个指向表的指针,那怎么引用这个表里面的元素呢?输出这个表里面的所有元素怎么办??请高手赐教 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 *(sPoint+i)或者sPoint[i]所有元素需要一个长度。 或者判断(bool*)(sPoint+i)是否为0 *sPiont或者 sPoint[0] //第一个元素*(sPoint + 1) 或者 sPoint[1]//第二个元素 不行啊,打印出来全是0,我用的%f格式打印,是不是不对???定义的时候为啥要用bool呢? 用BOOL 是不是和你的具体问题有关呢 想知道你的具体问题是什么 好奇中 ////将权不为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】中 bool 就true 和 false两个值。定义bool也就是说只需要两个值就可以表明所有的状态了。你那个sPoint有没有赋值过? bool的值也就是非0和0两种情况。 ////初始化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; } 在debug的watch窗口看看,sPoint值到底是什么或者用下面这段程序输出看看CString str = "";for(i = 0; i < length; i++){ CString temp; temp.Format("%d ", sPoint[i]); str += temp;} sPoint的值只是0或者1,sPoint=new bool[length];这个定义有没有什么别的意思呢?定义sPoint的时候sPoint是个指针呀 bool * sPoint;//特征点表 程序里面这样写的..那就是也不知道sPoint[j*wB+i]=1; 这句是什么意思了 谢谢大家,问题已经解决了,朋友说的,其实坐标就是(i,j),循环体里面的那个,而sPoint是一个和整幅图像一样大小的表,输出坐标就输出ij就好了,谢谢大家热心帮助,分数大家平分了吧~~~ 位图对象加载一张24位图片//bitmap.bmBitsPixel是32???? 效仿线程池的问题 生僻问题 获取鼠标或者键盘按下 如何实现类似QQ的“单点登录”效果 URLDownloadToFile报异常问题,VS2005环境,Debug,异常全开,WINXP,IE8? 如何实现? VC技术内幕第四版!!! vc安装的问题 VC中如何才能得到一个word文档中图片的位置和大小? (100分)小弟初学者,想做一个http服务器,谁能讲讲思路阿? ●●谁有摄像头CYUSBCAM.DLL的调用说明或者例子代码,万分感激! DllMain函数为什么不被执行
所有元素需要一个长度。
*(sPoint + 1) 或者 sPoint[1]//第二个元素
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】中
定义bool也就是说只需要两个值就可以表明所有的状态了。
你那个sPoint有没有赋值过?
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;
}
或者用下面这段程序输出看看
CString str = "";
for(i = 0; i < length; i++)
{
CString temp;
temp.Format("%d ", sPoint[i]);
str += temp;
}
那就是也不知道sPoint[j*wB+i]=1;
这句是什么意思了