如何用MATLAB memmapfile可视化数据

How to visualize data with MATLAB memmapfile?

本文关键字:可视化 数据 memmapfile MATLAB 何用      更新时间:2023-10-16

我正试图从文件中读取一些数据,并将其作为原始数据输出。该文件是一个图像,输出文件我每次写一行数据。

在matlab中,我做了以下操作:

bin_path = 'myfile.bin';
m = memmapfile(bin_path, 'Format', {'uint16', [5000 5000], 'im'});
disp(m)
figure, imagesc(m.Data.im), colormap(gray)

尝试显示数据,认为我将得到一个图像。然而,它不是一个图像,它只是一堆黑色和灰色和白色的线条。

这个的matlab部分设置正确吗?

如果您的文件恰好由5000x5000x2个字节组成,每个字节表示正方形图像中的一个像素,那么这看起来可能可行。使用memmapfile是不寻常的——事实上,我甚至不知道Matlab中存在这个函数。更典型的做法是简单地使用fread来读取原始图像。如果您的图像是标准文件格式(JPG, PNG等),请使用imread

假设您的图像确实是5000 x 5000 x uint16,您可能会遇到端序问题。尝试使用fopenfread获取数据;Matlab的fopen接受一个参数,告诉它是否进行端序转换。