jpg变成二进制文件抄的这个
https://bbs.bccn.net/thread-472595-1-1.html 之后 昨晚根据你的建议 运行一个小DEMO直接运行 然后放到如下项目 跑不通
后来 把原项目的 if ((fp=fopen(cmd, "rb")) == NULL) return; 替换成2楼的 fp= fopen( cmd, "rb" );if(fp){}之前的思路也是jpg->cvmat(写成mat了)->IplImage
红色字体的地方 原来的第一张图片是300*211 cvMat函数就这样用了 IplImage这个对象下一步要用的原材料 (xxx.jpg->IplImage(cvLoadImage)考虑的是传的就是字节流数组) 谢谢2L 问题解决了 等你给个回复再结贴可好
@rjsp
//hellobike
buffsize = _filesize(fp);
fprintf( stderr, " %d indexes...\n", cmd );
buff = (char *)malloc(buffsize*sizeof(char));//buff就是uchar数组
fread(buff, buffsize, 1, fp);
for (i=0; i<10; i++) //显示前10个字符
printf("%x ", (unsigned char)buff[i]);
//cv:: Mat img = cv::imdecode(buff,CV_LOAD_IMAGE_COLOR);
//=======
//
mat =cvMat(300,211,CV_8UC1, buff); //300*211像素的图片
//
myimage = cvDecodeImage( &mat, 1 );
mat =cvMat(buffsize,1,CV_8UC1, buff);
myimage = cvDecodeImage( &mat, CV_LOAD_IMAGE_ANYDEPTH|CV_LOAD_IMAGE_ANYCOLOR );
if( ! myimage )
fatal_error( "byte unable to load image from %s byte", cmd );
nn= sift_features( myimage, &featn );
fprintf( stderr, "byte Found %d features.byte\n", nn );
free(buff);
//hellobike