如何从矩阵在 MATLAB 中创建图像(如果可能)



问题如下:我有一个包含 3 列数字的.txt文件。前 2 列是点的坐标 x,y。第三列(z 向量(由表示每个点亮度的数字组成。(.txt文件是由用于研究燃烧过程图片的软件生成的(。每个向量 (x,y,z( 由 316920 个元素(均为整数(组成。现在:有没有办法从这 3 个向量中创建 matlab 中的图像,将光度值与点的坐标相关联?谢谢你的时间!

考虑一个文件图像.txt包含 y x 和强度值分隔线。 像这样。

1 1 0 
1 2 12
1 3 10
....
....
255 255 0

使用 fopen 函数打开文本文件

fid = fopen(image.txt,'r');
im=[];

并通过fgetl函数读取字符串行,使用sscanf将字符串转换为矢量,并将强度值放入图像矩阵IM的Y和X坐标中。

tline=fgetl(fid) ;
rd=sscanf(tline,'%d');
im(rd(1),rd(2))=rd(3);

相同的过程将迭代到文件末尾。最后关闭文件句柄 fid

我将

假设您的文本文件中的三列是逗号分隔的(如果它们不是逗号分隔的,代码将需要有点不同(。既然你说所有的数字都是整数,我将假设你拥有使用 x 和 y 列填充 2D 网格所需的所有数据。我不假设它是有序的形式。有了这些假设,代码将如下所示

data = csvread(filename)
for i=1:length(data)
matrix(data(i,2)+1,data(i,1)+1)=data(i,3) // +1 is added since there maybe a index starting from 0 and matlab needs them to start from 1
end
image(matrix)

对于其他分隔符,请使用

data = dlmread(filename,delimiter)

最新更新