Clear Filters
Clear Filters

Create multiple image from raw data in MATLAB

3 views (last 30 days)
Hello everyone, I hope you are doing well. I have the dataset of shape 1x77564 .
I have write the following code which take first 1000 samples and convert it into image. but when i convert it into first 1000 some values not included in the image.
How can I create image which include all the values of 1x77564 in 1x1000 sample shape. Or How can i create mutliple image
[row, column] = size(incomingdata);
for eachrow=1:row
if column==1000
outputdataset(eachrow,:)=incomingdata(eachrow,:);
else
targetsize = 1000;
sizeofincomingdata = column;
nrep = targetsize / sizeofincomingdata;
fullrep = floor(nrep);
leftover = targetsize - fullrep * sizeofincomingdata;
outputdataset(eachrow,:)=[repmat(incomingdata(eachrow,:), 1, fullrep), incomingdata(1:leftover)];
% outputdataset(eachrow,:)= dataset;
end
end
% dataDirectory = fullfile('C:\Users\DELL\Documents\MATLAB\Examples\R2021b\phased\ModClassificationOfRadarAndCommSignalsExample\NewDataset\DatasetGeneration\IncomingDataset');
% disp("Data file directory is " + dataDirectory);
%% create grayscale shapes that resemble the data
[numImages, lenImage] = size( outputdataset);
imSz = 1000; % assuming images are 1000x1000
imbg = false(10000,1000); % background "color"
imfg = ~imbg(1,1); % forground "color"
imSizeOut=[10000 1000]; % ImageSize
for k= 1:numImages
imData = round( outputdataset(k,:)); % get pattern
[~,Y] = meshgrid(1:1000,1:10000); % make a grid
% black and white image
BW = imbg;
BW(Y==imData)=imfg;
valueestimation=imbinarize(imresize(uint8(BW),imSizeOut));
% convert to uint8 (0 255)
valueestimationimage = im2uint8(valueestimation);
% resize (from 1000x1000)
SE=strel('disk',2);
BW=imdilate(BW,SE);
BW=imbinarize(imresize(uint8(BW),imSizeOut));
% convert to uint8 (0 255)
imoriginalestimate = im2uint8(BW);
imoriginal = flipud(imoriginalestimate);
  9 Comments
Stephen john
Stephen john on 14 Aug 2022
@Walter Roberson I want it to be the replicate of the last values to complete the vector length. it should be modular to if any other vector have comes like 17340 , then it also make it 18000 by repeating the last values.
Walter Roberson
Walter Roberson on 14 Aug 2022
Replicate how many last values? In the 17340 case would you replicate the last 340 one full time and then nearly but not quite another full time to reach 1000? And if it had been 17001 you would replicate that 001 as needed?

Sign in to comment.

Answers (0)

Categories

Find more on Images in Help Center and File Exchange

Products


Release

R2022a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!