经常在C语言编写的程序中对图像进行处理,但不知道处理结果是否正确,今天经过尝试,可以做到在C语言中将图像数据输出到一个txt文件中,在matlab中读取这个txt文件并画图。
在C语言程序中
FILE *p = fopen("try.txt", "w");//存储图像数据的txt文件,按照行优先
for(int i=0;i<height;i++)
for(int j=0;j<width;j++)
{
fprintf(p,"%d ",before[i*width+j]);//图像数据按一维存储
//cout<<int(before[i*width+j]);
}
fclose(p);
在matlab中
A=load('D:\MATLAB7\work\try.txt');
B=reshape(A,88,72);%第二个参数为图像的宽,第二个参数为图像的高,matlab在r eshap时按照列优先的顺序
imshow(B,[]);
注意此时显示的图像是实际图像进行了镜像与翻转。若想正常显示,需要在C语言中改为列优先存储,即改变两个for的顺序,并在matlab中改变reshape的后两个参数的顺序。
转载于:https://blog.51cto.com/buptdtt/510099