level 1
M1rror94
楼主
有人用过imencode这个函数吗, 我用这个函数去把Mat格式转成内存中并写成文件。现在的问题是,文件保存正确,但是程序好像没有return就退出了,也没报错也没捕捉到异常 ,请问是什么原因呢?
int func()
{
Mat tstMat = imread("test.jpg");
// imshow("picture",tstMat);
vector<unsigned char> inImage;
imencode(".jpg", tstMat, inImage);
size_t datalen = inImage.size();
unsigned char *msgImage = new unsigned char[datalen];
for (int i = 0; i<datalen; i++)
{
msgImage[i] = inImage[i];
}
FILE *fp = fopen("z.jpg", "wb+");
fwrite(msgImage, datalen, 1, fp);
delete[]msgImage;
fclose(fp);
cout << "func end" << endl;
return 0;
}
int main(int argc,char** argv)
{
int ret = func();
cout << "ret" << ret << endl;
cout << "main end" << endl;
return 0;
}
程序执行出func end 就结束了 main函数里面的ret 和main end 都没有输出
2020年10月10日 08点10分
1
int func()
{
Mat tstMat = imread("test.jpg");
// imshow("picture",tstMat);
vector<unsigned char> inImage;
imencode(".jpg", tstMat, inImage);
size_t datalen = inImage.size();
unsigned char *msgImage = new unsigned char[datalen];
for (int i = 0; i<datalen; i++)
{
msgImage[i] = inImage[i];
}
FILE *fp = fopen("z.jpg", "wb+");
fwrite(msgImage, datalen, 1, fp);
delete[]msgImage;
fclose(fp);
cout << "func end" << endl;
return 0;
}
int main(int argc,char** argv)
{
int ret = func();
cout << "ret" << ret << endl;
cout << "main end" << endl;
return 0;
}
程序执行出func end 就结束了 main函数里面的ret 和main end 都没有输出