Split an image into two sets

3 views (last 30 days)
Simona Neacsu
Simona Neacsu on 27 Oct 2019
Commented: Simona Neacsu on 30 Oct 2019
Hi, I need to split an image into two sets of pixels A and B, each randomly containing half of the pixels (using the rand function). Thanks in advance for any help.

Answers (1)

Matt J
Matt J on 27 Oct 2019
N=numel(yourImage);
indices=randperm(N,round(N/2));
A=yourImage(indices);
B=yourImage; B(indices)=[];
  1 Comment
Simona Neacsu
Simona Neacsu on 30 Oct 2019
Thanks! This helped a lot. This is how I finally did it:
randomind=randperm(numel(inital_image), numel(inital_image)/2);
imageA=image1;
imageA(randomind)=0;
imageB=imageA;
for i=1:size(imageA,1)
for j=1:size(imageA,2)
if (imageA(i,j)==0) imageA(i,j)=image1(i,j);
elseif (imageA(i,j)~=0) imageA(i,j)=0; end
end
end

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!