关于读文件,然后将里面的数据转为图片显示的有关问题
关于读文件,然后将里面的数据转为图片显示的问题
完全菜鸟,我这样写的,不行,求指导~~文件是raw类型~~
capfile=fopen(dataname,"r");
char k;
if(((k=fgetc(capfile))!=EOF))//EOF文件结束标志
{
for (size_t row = 0/*, getck = 0*/; row != matplay->rows; ++row)
{
uchar* matplayptr=(uchar*)(matplay->data.ptr + row * matplay->step);
for(size_t col = 0; col != matplay->cols; ++col)
{
fread(&matplayptr[col],sizeof( char ), 1, capfile );
}
}
cvConvert(matplay, imgplay);
cvNamedWindow("show show show",CV_WINDOW_AUTOSIZE);
cvShowImage("show show show",imgplay);
}
else
{
cvDestroyWindow("show show show");
}
------解决方案--------------------
用CvvImage
if ((logfile=fopen(dataname,"ab+"))==NULL)
{
MessageBox("no data,please save first");
}
else
{
while(!feof(logfile))
{
for (size_t row = 0; row != matplay->rows; ++row)
{
uchar* matplayptr=(uchar*)(matplay->data.ptr + row * matplay->step);
for (size_t col = 0; col != matplay->cols; ++col)
{
/* matplayptr[col]=fgetc(logfile);*/
fread(&matplayptr[col],sizeof(char),1,logfile);
}
}
cvConvert(matplay,imgplay);
cimgplay.CopyOf(imgplay,imgplay->nChannels);
cimgplay.DrawToHDC(hDC,&rect);
}
fclose(logfile);
}
完全菜鸟,我这样写的,不行,求指导~~文件是raw类型~~
capfile=fopen(dataname,"r");
char k;
if(((k=fgetc(capfile))!=EOF))//EOF文件结束标志
{
for (size_t row = 0/*, getck = 0*/; row != matplay->rows; ++row)
{
uchar* matplayptr=(uchar*)(matplay->data.ptr + row * matplay->step);
for(size_t col = 0; col != matplay->cols; ++col)
{
fread(&matplayptr[col],sizeof( char ), 1, capfile );
}
}
cvConvert(matplay, imgplay);
cvNamedWindow("show show show",CV_WINDOW_AUTOSIZE);
cvShowImage("show show show",imgplay);
}
else
{
cvDestroyWindow("show show show");
}
------解决方案--------------------
用CvvImage
if ((logfile=fopen(dataname,"ab+"))==NULL)
{
MessageBox("no data,please save first");
}
else
{
while(!feof(logfile))
{
for (size_t row = 0; row != matplay->rows; ++row)
{
uchar* matplayptr=(uchar*)(matplay->data.ptr + row * matplay->step);
for (size_t col = 0; col != matplay->cols; ++col)
{
/* matplayptr[col]=fgetc(logfile);*/
fread(&matplayptr[col],sizeof(char),1,logfile);
}
}
cvConvert(matplay,imgplay);
cimgplay.CopyOf(imgplay,imgplay->nChannels);
cimgplay.DrawToHDC(hDC,&rect);
}
fclose(logfile);
}