How can I use a loop to save the output image of the program after each iteration?
조회 수: 2 (최근 30일)
이전 댓글 표시
for slice = 1:16
recon_img = senserecon(aliased_img, sen_map,reduc, fi_matrix);
figure;imshow(abs(recon_img),[0 0.000005]);
end
The code is big. So, I just mentioned the loop for the number of iterations here. Here, there will be 16 output images. How can I save all output images using a loop?
댓글 수: 1
Image Analyst
2022년 3월 16일
By "output image" do you mean you want to save the variable recon_img in a file with a standard image format like PNG? Or do you want to save the figure, which would contain the image, tick marks, tick labels, the surrounding frame between the axes and the edge of the figure, any graphics that might have been drawn on the image, etc.? If you want the whole figure, use exportgraphics(). If you want just the image variable use imwrite() like I show you below in my answer.
채택된 답변
Image Analyst
2022년 3월 15일
It's probably a floating point image. Try converting it to uint8 before saving it.
outputFolder = pwd; % Wherever you want.
for slice = 1:16
recon_img = senserecon(aliased_img, sen_map,reduc, fi_matrix);
subplot(4, 4, slice);
uint8Image = uint8(255 * mat2gray(abs(recon_img)));
imshow(uint8Image, []);
drawnow;
baseFileName = sprintf('Image Slice %d.png', slice);
outputFileName = fullfile(outputFolder, baseFileName);
imwrite(uint8Image, outputFileName)
end
댓글 수: 0
추가 답변 (2개)
Voss
2022년 3월 15일
for slice = 1:16
recon_img = senserecon(aliased_img, sen_map,reduc, fi_matrix);
imwrite(recon_img,sprintf('image_slice_%03d.png',slice)); % write recon_img to file
figure;imshow(abs(recon_img),[0 0.000005]);
end
댓글 수: 3
yanqi liu
2022년 3월 16일
for slice = 1:16
recon_img = senserecon(aliased_img, sen_map,reduc, fi_matrix);
figure;imshow(abs(recon_img),[0 0.000005]);
print(gcf,'-dpng','-r200',sprintf('sense_rec%02d', slice));
end
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!