Asked by ravi
on 11 Apr 2014

hi,I am trying excute fallowing programme,but it is showing Attempted to access proj(2); index out of bounds because numel(proj)=1 error.I was not able to solve this problem.anybody know answer suggest me.thanks in advance.

I = imread('ch_text.tiff');

[row ,col]=size(I);

h_proj=zeros;

for i = 1:row

sum=0;

for j=1:col

if I(i,j)==0 %black pixel found

sum=sum+1;

end

end

h_proj(i)=sum;

end

figure,plot(h_proj,1:row),title('horizontal projection');

nonzero_row_indx=zeros;

i = 1; k = 1;

while (i >= 1) && (i <= row)

if h_proj(i) ~= 0

nonzero_row_indx(k) = i;

k = k + 1;

i = i + 1;

while h_proj(i) ~= 0

i = i + 1;

end

nonzero_row_indx(k) = i - 1;

k = k + 1;

end

i = i + 1;

end

Answer by Nitin
on 12 Apr 2014

I tried running your programme using the Matlab built-in image, blobs.png and received the following error:

Attempted to access h_proj(273); index out of bounds because numel(h_proj)=272.

It would appear that the way you are incrementing i is not the correct, not sure what you are trying to achieve but i is getting incremented more than it should be in your code, hence the out of bounds error

Sign in to comment.

Answer by Walter Roberson
on 12 Apr 2014

Your code

while h_proj(i) ~= 0

i = i + 1;

end

is going to fail if h_proj ends with non-zero.

Note: do not name a variable "sum" as that will interfere with use of the important MATLAB routine sum()

Sign in to comment.

Answer by Ken Atwell
on 12 Apr 2014

Your inner-most 'while' loop continues to increment 'i' while 'h_proj(i)' is nonzero. This will fall out of bounds if the last value of 'h_proj(i)' is nonzero.

As you learn more about MATLAB, I encourage you to learn more about MATLAB's vector syntax, which can help you avoid overruns like this. As currently written, your code looks like an almost-direct port of something a C programmer would write. For example, the doubly-nested loop that sums black pixels can be done in a single instruction:

h_proj = sum(I==0,2)';

Have fun.

Sign in to comment.

Opportunities for recent engineering grads.

Apply Today
## 1 Comment

## Walter Roberson (view profile)

## Direct link to this comment

https://www.mathworks.com/matlabcentral/answers/125375-how-to-avoid-index-out-of-bounds-error#comment_207662

Sign in to comment.