Hi i am getting Index out of bounds error pls help me solve it
4 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Serena Woolridge
am 31 Mär. 2016
Kommentiert: Star Strider
am 4 Apr. 2016
I hv a 2d image of 93×58 pixels. Error im gettin is attempted to access b(1,59) because size(b)=(93,58).
How do i go about rectifying this error?? Pls help as im new to matlab and to image processing. Thanks in advance.
2 Kommentare
Akzeptierte Antwort
Star Strider
am 31 Mär. 2016
Bearbeitet: Star Strider
am 1 Apr. 2016
You’re asking for column 59 of a 58-column matrix.
Think about it ...
EDIT — Seeing only the part of your code that you posted (about 8 hours ago), I would simply reverse the values of ‘m2’ and ‘n2’ in your loops.
2 Kommentare
Star Strider
am 4 Apr. 2016
In these lines:
m2 = m1*ms;
n2 = n1*ms;
the ‘ms’ variable has to be greater than 0 and less than or equal to 1 for that to work correctly.
The only way I can come up with to avoid addressing outside the dimensions of your image is with something like this:
m2 = fix(max(1,m2));
m2 = fix(min(m1,m2));
n2 = fix(max(1,n2));
n2 = fix(min(n1,n2));
That limits the index variables to the limits of your image size.
Weitere Antworten (2)
MHN
am 31 Mär. 2016
So, you should not attempt to get b(1,59) when the size of b is (93,58) !!!
0 Kommentare
Walter Roberson
am 1 Apr. 2016
Consider the possibility that you have m2 and n2 exchanged in your code.
Another possibility: did you use
[m2, n2] = size(YourMatrix)
and your image is a color image? If so then you have a bug because of the way that size() is defined when you have fewer outputs than the array has dimensions. Instead use
[m2, n2, ~] = size(YourMatrix)
2 Kommentare
Siehe auch
Kategorien
Mehr zu Image Processing Toolbox finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!