Creating an Image from a Textfile Data using Matlab
3 views (last 30 days)
Show older comments
Manu Chaudhary on 14 Jan 2022
Commented: Manu Chaudhary on 15 Jan 2022
I am completely new to matlab and image related applications. I am struggling to understand image related functionality in matlab. With the below lines of code, I am breaking the 64x64 size colored image and storing it in a textfile after normalization.
input_image_filename = './Images/image_64x64.jpg'; % A 64x64 size colored image
input_image_3D = imread(input_image_filename); % Breaking image into pixel
fprintf(fid,'%0.16f\n',norm_image_3D); % Written the image to file % The number of entries i am getting in text file is 12288
After this, suppose I want to generate the image back from the textfile data, how should I do that? I tried something as below but it doesnot work.
filename = 'filename.txt';
Please help me in completing this code.
Simon Chan on 15 Jan 2022
Edited: Simon Chan on 15 Jan 2022
Try the followings: (with editing below)
Normalization just divide by 255 for uint8 image.
[Ny,Nx,Nc] = size(input_image_3D); % Ypur input_image_3D, size is 64x64x3
J = zeros(size(input_image_3D)); % Initialize matrix J
for k =1:Nc
I = double(input_image_3D(:,:,k));
J(:,:,k) = I/255; % Perform normalization channel by channel
J = reshape(J,Ny,,1); % Reshape to 2 dimensions first
J = reshape(J,,1); % Reshape to a column vector
%% No commnent below, same as your code
% The txt file is a column vector and hecnce you need to revert back to
% its original size. Also use imshow instead of imshow3D
testingReadFile=importdata('filename.txt'); % Import the txt file
revertI = reshape(testingReadFile,Ny,); % Reshape back to 64 rows first
revertI = reshape(revertI,Ny,,Nc); % Revert back to 3 channels
imshow(revertI,) % Showing the image
More Answers (0)
Find more on Image Processing Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!