Making an animation of pixels of same value appear in an image

5 views (last 30 days)
I am trying to make an animation in matlab where pixels of the same value appear at once. For example, if I have a gray image with pixels ranging with values between 0 and 255, I want to scan the image so that all of the pixels with intensity 100 apear at the same time, pixels 101 appear next, and so on.
I've already made a code using the deal function where I make the pixels appear one at a time by their index. Is there a way I can scan the pixels by pixel value using the deal function, or will I have to do something else?
I've insert the first code below as an example
clear
clc
close all
I = imread('supe1.jpg');
I2 = im2double(I);
I3 = rgb2gray(I2);
% imshow(gry)
I4= imresize(I3, [50, 50]);
long = length(I4(:));
%
% making column vector of supes
% example matrix
exam = ones(50,50);
%%
for k = 1:long
[I4(k) , exam(k)] = deal(exam(k), I4(k));
figure(1)
imshow(exam)
movieVector(k) = getframe;
end
% figure(2)
% imshow(bizzaro)
%%
%Create a VideoWriter object and set properties
myWriter = VideoWriter('Superman3', 'MPEG-4'); %create an .avi file
% myWriter = VideoWriter('curve','MPEG-4'); %create an .mp4 file
myWriter.FrameRate = 20;
%Open the VideoWriter object, write the movie, and close the file
open(myWriter);
writeVideo(myWriter, movieVector);
close(myWriter);

Answers (1)

DGM
DGM on 3 Dec 2021
Edited: DGM on 3 Dec 2021
Don't do this. Displays are for viewing. You're basically taking a screenshot of the image. If you want to save an image, just save the image. If you're overlaying plots or something on top of it, that might be a different story, but for plain images, this isn't needed.
figure(1)
imshow(exam)
movieVector(k) = getframe;
Don't need deal() or any of that. You'll have to set up the video settings as you want.
A = imread('cameraman.tif');
v = VideoWriter('glanim.avi');
open(v);
for k = 0:255
thisframe = A;
thisframe(thisframe>k) = 0;
writeVideo(v,thisframe);
end
close(v);

Categories

Find more on Animation in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!