Index in position 1 exceeds array bounds
4 views (last 30 days)
Show older comments
Hi, I am running the Circular Hough Transform code (from Matlab) with different image inputted. However there is an error popping out mentioned that "Index in position 1 exceeds array bounds". I don know what is the reason behind it. Please help me on this !
A = imread('circle.png');
imshow(A);
[centers, radii, metric] = imfindcircles(A,[15 30]);
centersStrong5 = centers(1:5,:);
radiiStrong5 = radii(1:5);
metricStrong5 = metric(1:5);
viscircles(centersStrong5, radiiStrong5,'EdgeColor','b');
2 Comments
Adam Danz
on 4 Nov 2019
Edited: Adam Danz
on 5 Nov 2019
What line is causing the error?
Sharing the error message is helpful but you should share the entire copy-pasted error message and indicate which line is causing the error.
"Index in position 1 exceeds array bounds" is quite informative. It means you're asking for values that don't exist. Here's an example:
a = [1 2 3 4 5]
a(6) % But there is only 5 values! Error!
Accepted Answer
David Hill
on 4 Nov 2019
If imfindcircles finds less than 5 circles you are going to error.
A = imread('circle.png');
imshow(A);
[centers, radii, metric] = imfindcircles(A,[15 30]);
a=max(5,length(centers));
centersStrong5 = centers(1:a,:);
radiiStrong5 = radii(1:a);
metricStrong5 = metric(1:a);
viscircles(centersStrong5, radiiStrong5,'EdgeColor','b');
5 Comments
Walter Roberson
on 5 Nov 2019
I keep getting caught myself in thinking that the operation "at least so-many" should be a min() operation, because you want a minimum of so-many.
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!