# Hough Circle detection - error ↑ Error: Function definition not supported in this context. Create functions in code file. Not sure how to fix this in the code

5 views (last 30 days)
Ivy on 23 Jun 2021
Commented: DGM on 23 Jun 2021
I created a code to detect circles with radius range 30 - 40 and it is not working, error message: ↑
Error: Function definition not supported in this context. Create functions in code file.
I am new at MATLAB and not sure how to resolve this.
function [C]=circle_detection(I,R)
% convert to grayscale:
% generate the edge image
BW= edge (I, 'canny');% binary output
% Parameterization
theta_sample_frequency= 0.01; % Quantization step size
num_thetas=numel (theta);
[x, y] = size (BW);% input image dimension
x0 = (1:x);
y0 = (1:y);
acc = zeros(x,y);% accumulator 1.e. hough space
r=R;
% Hough transform
for xi=1:x
for yj=1:y
if BW(xi,yj)==1 % this is edge point
for theta_id= 1:num_thetas
th=theta(theta_id);
a=round(xi-r*cos(th));
b=round(yj-r*sin(th));
if(a>0&&a<=x&&b>0&&b<=y)
acc(a,b) = acc(a,b)+1;
end
end
end
end
end
% Extract the parameters
[M, I]= max(acc (:)); %#ok<ASGLU> % detecting the maxima
[a, b] = ind2sub (size (acc), I); % Its courdinate in HT space
C=[y0(b), x0(a)]; % Centre of the circle
end
I am getting following error:
function [C]=circle_detection(I,R)
Error: Function definition not supported in this context. Create functions in code file.
DGM on 23 Jun 2021
Two things:
1: Where are you writing this? Is this in a standalone file by itself? in another function file? In a script file?
2: What version are you using? IIRC, the ability to add local functions inside script files wasn't introduced until R2016b or so.