以下是建议的重新发布代码
我在Matlab中有一个图像读取代码,它将像素作为整数值映射到文本文件中。(。dat)
下一步是从文件夹中读取图像并制作相应的文件夹,并将.dat文件保存在该文件夹中。
例如,1.tif保存为batch / 1 / 1.dat 2.tif保存为批/ 2 / 2.dat等等
这是我的MATLAB函数
function createDAT(numFiles,source)
tic
for i=1:numFiles
source_folder = [source];
destination_folder = [num2str(i)];
mkdir(destination_folder);
img_name = [num2str(i) '.tif'];
dat_filename = [num2str(i) '.dat'];
source_path = fullfile(source_folder, img_name);
destination_path = fullfile(source_folder, destination_folder, dat_filename);
disp(destination_path);
disp(source_path);
file_id = fopen(fullfile(destination_path), 'w');
disp(file_id);
BB=imread(source_path ,'TIF');
nx=size(BB,2);
ny=size(BB,1);
B=zeros(ny,nx);
% wholeGeom=zeros(ny,nx);
wholeGeom=BB;
for i=1:nx
for j=1:ny
if (wholeGeom(j,i) == 255)
B(j,i) = 1;
elseif (wholeGeom(j,i) == 0)
B(j,i) = 0;
end
end
end
'printing first slice'
fprintf(file_id, '%i\n', B);
%fwrite(outid, B);
fclose(file_id);
image(30*B)
axis equal
drawnow
end
toc
并且输出表明字符串正常。但错误仍然存在。我想知道是否必须对文件ID执行某些操作,因为它显示为负值
>> createDAT(5,'batch')
Warning: Directory already exists.
> In createDAT at 7
batch/1/1.dat
batch/1.tif
-1
ans =
printing first slice
Error using fprintf
Invalid file identifier. Use fopen to generate a valid file identifier.
Error in createDAT (line 42)
fprintf(file_id, '%i\n', B);