poster
2019-12-10, 20:42
我在Matlab中有一个二进制映像,并且在C程序中需要二进制数组(0和1),如何导入它?
我可以将二进制图像保存为Matlab中的“ .mat”,但我不知道如何在C中读取Mat文件。另外,我想也许可以将二进制图像中的二进制图像另存为“ .bin”,在“ C”,但我不知道如何将图像在Matlab中另存为“ .bin”。
任何帮助将不胜感激。
回答:
您还可以将数据写入二进制文件,该文件的大小大约是文本的两倍。
img=rand(10)>.5; %# an array from @Amro's answer fid = fopen('test.bin','w'); fwrite(fid,img,'int8') fclose(fid); 然后,我相信您可以毫无问题地用C语言阅读它。请记住,MATLAB将按列而不是按行写入数据-首先是第一列,然后是第二列,依此类推。如果要按行在C中读取数据,只需在写之前转置数组即可:
fwrite(fid,img','int8') %# notice ' symbol after img
更多&回答... (https://stackoverflow.com/questions/3103208)
我可以将二进制图像保存为Matlab中的“ .mat”,但我不知道如何在C中读取Mat文件。另外,我想也许可以将二进制图像中的二进制图像另存为“ .bin”,在“ C”,但我不知道如何将图像在Matlab中另存为“ .bin”。
任何帮助将不胜感激。
回答:
您还可以将数据写入二进制文件,该文件的大小大约是文本的两倍。
img=rand(10)>.5; %# an array from @Amro's answer fid = fopen('test.bin','w'); fwrite(fid,img,'int8') fclose(fid); 然后,我相信您可以毫无问题地用C语言阅读它。请记住,MATLAB将按列而不是按行写入数据-首先是第一列,然后是第二列,依此类推。如果要按行在C中读取数据,只需在写之前转置数组即可:
fwrite(fid,img','int8') %# notice ' symbol after img
更多&回答... (https://stackoverflow.com/questions/3103208)