Shadow detection and removal based on HSV color model.

J
Jazmine · Oct 31, 2020 · 1.9K views
Question
Index exceeds matrix dimensions. Error in Bpos (line 37) w= (cfv(i,j)/pv(i,j)); Code is here:   mov = VideoReader('C:/Users/research01/Desktop/Walking.avi'); p=imread('C:/Users/research01/Desktop/1234.png'); p=rgb2hsv(p); ph=p(:,:,1); ps=p(:,:,2); pv=p(:,:,3); alphaV=0.2; betaV=0.8; opFolder = fullfile('F:\imagelab', 'Bpos'); if ~exist(opFolder, 'dir') mkdir(opFolder); end numFrames = mov.NumberOfFrames; numFramesWritten = 0; for t = 1 : numFrames currFrame = read(mov, t); currFrame=rgb2hsv(currFrame); figure;imshow(currFrame); cfh=currFrame(:,:,1); figure; imshow(cfh); cfs=currFrame(:,:,2); figure;imshow(cfs); cfv=currFrame(:,:,3); figure;imshow(cfv); [m,n]=size(currFrame); single=zeros(m,n); for i=1:m for j=1:n % a=cfv(i,j); % progIndication = sprintf('Wrote frame %d.',a); % disp(progIndication); w= (cfv(i,j)/pv(i,j)); progIndication = sprintf('Wrote frame %d.',w); disp(progIndication); sat=cfs(i,j)-ps(i,j); progIndication = sprintf('sat frame %d.',w); disp(progIndication); hue=cfh(i,j)-ph(i,j); progIndication = sprintf('hue frame %d.',w); disp(progIndication); if(w>=alphaV && w<=betaV && sat<=-0.3 && hue <=0.2) single(i,j)=1; else single(i,j)=0; end end end imshow(single); opBaseFileName = sprintf('%3.3d.png', t); opFullFileName = fullfile(opFolder, opBaseFileName); imwrite(single, opFullFileName, 'png'); end
Expert Answer
Profile picture of John Michell
John Michell PhD Expert
Answered Aug 11, 2026

Evidently your still image does not have the same number of rows and columns as your video. You should really check for that before you begin processing. You want to write robust code don't you? Alert your users if that's the case with errordlg().

 

message = sprintf('Image rows = %d\nImage columns = %d\nVideo rows = %d\nVideo columns = %d',...
rows, columns, videoRows, videoColumns);
uiwait(errordlg(message));
return;
100% Run Guarantee 3-Hour Fast-Track Delivery

Need a Custom Version or Complete Simulation for This Problem?

Our 500+ PhD engineers build, debug, and optimize working MATLAB scripts and Simulink (.slx) models tailored to your exact assignment rubrics with zero plagiarism.

Tested on MATLAB R2024b / R2026a
Turnitin 0% Plagiarism Report
Free 7-Day Revisions Guarantee
Have a different question? Ask here

Get a Free Consultation or a Sample Assignment Review!