特征提取中,常常需要将提取出的边缘投影到原始图像上,以检验提取效果。将边缘点保存在TXT后,将其读入到数组中,X,Y中,然后在ONDRAW中将其显示。
具体如下:1.读入数组。
FILE *fp = fopen("。。。/DataSave.txt","r");
if(NULL == fp)
{
AfxMessageBox("error");
return;
}
int nNum = 0;
fscanf(fp,"%d",&nNum);
int *aPointX = new int[nNum];
int *aPointY = new int[nNum];
2.显示。
这样就在原始图片上画就行了,而ONDRAW就是打开图像的函数,在这个的后边加上这样的画点的函数。SetPixel(x,y,RGB())。
fscanf(fp,"%d",&nNum);
int *aPointX = new int[nNum];
int *aPointY = new int[nNum];
memset(aPointX,0,nNum);
memset(aPointY,0,nNum);
for (int i =0;i<nNum;i++)
{
fscanf(fp,"%d %d",&aPointX[i],&aPointY[i]);
}
for (int j = 0;j<nNum;++j)
{
pDC->SetPixel(aPointX[j],cyDIB - aPointY[j],RGB(255,0,0));
}
。其中,用到一个获得图像长宽的函数
HDIB hDIB = pDoc->GetHDIB();
LPSTR lpDIB = (LPSTR) ::GlobalLock((HGLOBAL) hDIB);
// 获取DIB高度
cyDIB = (int) ::DIBHeight(lpDIB);
Q:1.图像是怎么读取进去的?
2.读取TXT的函数有哪些?