gc_4cell_init(RMargs);
// in_a是输入4C raw图
unsigned short* in_a = (unsigned short*)malloc(sizeof(unsigned short) * (4208 * 3120));
// out_a是输出bayer raw图
unsigned short* out_a = (unsigned short*)malloc(sizeof(unsigned short) * (4208 * 3120));
FILE* fp1 = fopen("in.raw", "rb");
if (fp1) {
fread(in_a, 4208 * 3120, 2, fp1);
fclose(fp1);
}
else {
AfxMessageBox("Cannot open INPUT RAW file for read!\n");
}
fp1 = fopen("out.raw", "wb");
gc_4cell_top(in_a, out_a, RMargs); // 调用此函数时,发生报错
// 释放空间
gc_4cell_uninit();
free(in_a);
free(out_a);
这个报错很可能是数组越界导致的。但是当前代码看着是没什么问题的。建议看一下 gc_4cell_top()这个函数的输入参数说明,看看输入的参数是否符合接口要求。
感觉问题可能是出在fread(in_a, 4208 * 3120, 2, fp1);这里。你检查一下你的文件格式,这么读出来的数据不一定正确。你打印一部分数据检验一下读取是否正确。
我很少用windows vs,我的理解是,可以试试:
设置断点,单步调试跟着走一下,看看挂在哪里,或者走不下去的时候,需要加载一些pdb文件和源文件吧 ,就可以看到信息。。。
具体操作和加载什么pdb和源文件,怎么加,可以百度。
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!