v = VideoReader('images_video/Maldives.mp4');while hasFrame(v) frame = readFrame(v); figure, imshow(frame); BW = rgb2gray(frame); edge = edge(BW, 'canny', 0.2); figure, imshow(edge);end
When we run this, the first frame shows with imshow(frame) then the edge function works and the first edge shows with imshow(edge), the loop starts again and the next imshow(frame) works, and then we get an error:
Index in position 3 is invalid. Array indices must be positive integers or logical values.
Otherwise, the loop runs fine. Clearly something to do with the edge function is trying to operate on itself or something. Probably something simple. Any ideas please?
MATLAB: R2018b
Best Answer