ROI in video using the first frame

14 visualizaciones (últimos 30 días)
Shu-An Hsieh
Shu-An Hsieh el 3 de Oct. de 2022
Comentada: Shu-An Hsieh el 4 de Oct. de 2022
Hi,
I would like to specify the box on the first frame of a video and then have all subsequent frames use that same box location.
I have a for loop here but unsure where should add this part in. Thank you!
for frame = 1 : numberOfFrames
% Extract the frame from the movie structure.
thisFrame = read(videoObject, frame);
thisFrame = thisFrame(557:702,70:216, :, :);
% Display it
hImage = subplot(1, 2, 1);
image(thisFrame);
axis image;
ongoing = frame/framerate;
total = numberOfFrames/framerate;
caption = sprintf('Time %.3f of %.3f sec.', ongoing, total);
title(caption, 'FontSize', 20);
drawnow; % Force it to refresh the window.
  2 comentarios
Kevin Holly
Kevin Holly el 3 de Oct. de 2022
Are you trying to crop a video to a rectangular region of interest (ROI)? Is the ROI defined by the user or based on the image?
Shu-An Hsieh
Shu-An Hsieh el 3 de Oct. de 2022
I am trying to crop a circle on my video. The ROI will be based on the user.

Iniciar sesión para comentar.

Respuesta aceptada

Kevin Holly
Kevin Holly el 3 de Oct. de 2022
Editada: Kevin Holly el 3 de Oct. de 2022
Read video and have user define Circle ROI:
v = VideoReader('xylophone.mp4');
frame = readFrame(v);
imshow(frame)
c = drawcircle;
After Circle ROI is define, you could have a pushbutton callback that creates a mask and plays video:
mask = createMask(c);
while hasFrame(v)
frame = readFrame(v);
imshow(uint8(mask).*frame)
end
  22 comentarios
Shu-An Hsieh
Shu-An Hsieh el 4 de Oct. de 2022
Thank you Kevin! I am wondering if it is possible the get several ranges and substact a base number out of it. Also, I am wondering if I can further save an additional figure of the right figure when the code ends.
Shu-An Hsieh
Shu-An Hsieh el 4 de Oct. de 2022
Actually, I am thinking to the get the area between two points, so like you drag a line between two points and the area above and between those two is the area I wanted. Thank you!

Iniciar sesión para comentar.

Más respuestas (0)

Community Treasure Hunt

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

Start Hunting!

Translated by