Index in position 1 exceeds array bounds
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Teik Jin Lim
am 4 Nov. 2019
Bearbeitet: Adam Danz
am 5 Nov. 2019
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 Kommentare
Adam Danz
am 4 Nov. 2019
Bearbeitet: Adam Danz
am 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!
Akzeptierte Antwort
David Hill
am 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 Kommentare
Walter Roberson
am 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.
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!