Cody

# Problem 42616. Detect circles in images

Solution 784645

Submitted on 27 Nov 2015
This solution is locked. To view this solution, you need to provide a solution of the same size or smaller.

### Test Suite

Test Status Code Input and Output
1   Fail
%% I = imread(fullfile(matlabroot,'toolbox','images','imdata','circles.png')); [centers,radii] = detectcircles(I,[18 20],13); c = [119 222; 185 218; 124 116; 37 37; 178 184; 93 167; 37 72; 71 38; 93 132; 122 186; 97 96; 71 74; 151 204]; r = 19*ones(13,1); d1 = squeeze(sqrt(sum(bsxfun(@minus,centers,permute(c,str2num('3 2 1'))).^2,2))); d2 = squeeze(sqrt(sum(bsxfun(@minus,radii,permute(r,str2num('3 2 1'))).^2,2))); mask = d1<5 & d2<5; Re = mean(any(mask)); Pr = sum(any(mask))/size(mask,1); assert(Pr>=0.5) assert(Re>=0.75)

[Warning: Duplicate directory name: /opt/mlsedu/matlab/R2015b/toolbox/stateflow/stateflow]

2   Fail
%% I = imread(fullfile(matlabroot,'toolbox','images','imdata','circlesBrightDark.png')); [centers,radii] = detectcircles(I,[32 64],6); c = [75 250; 100 100; 250 400; 300 120; 450 240; 330 370]; r = [35; 50; 60; 40; 50; 55]; d1 = squeeze(sqrt(sum(bsxfun(@minus,centers,permute(c,str2num('3 2 1'))).^2,2))); d2 = squeeze(sqrt(sum(bsxfun(@minus,radii,permute(r,str2num('3 2 1'))).^2,2))); mask = d1<5 & d2<5; Re = mean(any(mask)); Pr = sum(any(mask))/size(mask,1); assert(Pr>=0.5) assert(Re>=0.75)

[Warning: Duplicate directory name: /opt/mlsedu/matlab/R2015b/toolbox/stateflow/stateflow]

3   Fail
%% I = imread(fullfile(matlabroot,'toolbox','images','imdata','coins.png')); [centers,radii] = detectcircles(I,[24 30],10); c = [236 174; 149 35; 56 50; 266 103; 217 71; 120 209; 110 85; 175 120; 96 146; 37 107]; r = [25; 29; 25; 24; 29; 29; 24; 29; 29; 29]; d1 = squeeze(sqrt(sum(bsxfun(@minus,centers,permute(c,str2num('3 2 1'))).^2,2))); d2 = squeeze(sqrt(sum(bsxfun(@minus,radii,permute(r,str2num('3 2 1'))).^2,2))); mask = d1<5 & d2<5; Re = mean(any(mask)); Pr = sum(any(mask))/size(mask,1); assert(Pr>=0.5) assert(Re>=0.75)

[Warning: Duplicate directory name: /opt/mlsedu/matlab/R2015b/toolbox/stateflow/stateflow]

4   Fail
%% I = imread(fullfile(matlabroot,'toolbox','images','imdata','coloredChips.png')); [centers,radii] = detectcircles(I,[20 28],26); c = [83 177; 304 336; 420 88; 434 165; 244 166; 327 297; 273 53; 130 44; 271 281; 408 265; 312 192; 420 346; 146 199; 228 232; 329 135; 175 297; 366 224; 150 258; 217 107; 345 119; 445 68; 372 293; 150 342; 251 8; 259 217; 198 107]; r = [23; 24; 23; 23; 23; 23; 23; 23; 23; 23; 23; 24; 23; 23; 23; 24; 23; 24; 23; 23; 23; 24; 25; 23; 23; 25]; d1 = squeeze(sqrt(sum(bsxfun(@minus,centers,permute(c,str2num('3 2 1'))).^2,2))); d2 = squeeze(sqrt(sum(bsxfun(@minus,radii,permute(r,str2num('3 2 1'))).^2,2))); mask = d1<5 & d2<5; Re = mean(any(mask)); Pr = sum(any(mask))/size(mask,1); assert(Pr>=0.5) assert(Re>=0.75)

[Warning: Duplicate directory name: /opt/mlsedu/matlab/R2015b/toolbox/stateflow/stateflow]

5   Fail
%% I = imread(fullfile(matlabroot,'toolbox','images','imdata','eight.tif')); [centers,radii] = detectcircles(I,[35 40],4); c = [198 189; 247 72; 62 141; 124 58]; r = [37; 37; 38; 37]; d1 = squeeze(sqrt(sum(bsxfun(@minus,centers,permute(c,str2num('3 2 1'))).^2,2))); d2 = squeeze(sqrt(sum(bsxfun(@minus,radii,permute(r,str2num('3 2 1'))).^2,2))); mask = d1<5 & d2<5; Re = mean(any(mask)); Pr = sum(any(mask))/size(mask,1); assert(Pr>=0.5) assert(Re>=0.75)

[Warning: Duplicate directory name: /opt/mlsedu/matlab/R2015b/toolbox/stateflow/stateflow]

6   Fail

[Warning: Duplicate directory name: /opt/mlsedu/matlab/R2015b/toolbox/stateflow/stateflow]

7   Fail
%% I = imread(fullfile(matlabroot,'toolbox','images','imdata','pillsetc.png')); [centers,radii] = detectcircles(I,[15 55],4); c = [103 240; 252 326; 119 130; 319 84]; r = [17; 17; 50; 37]; d1 = squeeze(sqrt(sum(bsxfun(@minus,centers,permute(c,str2num('3 2 1'))).^2,2))); d2 = squeeze(sqrt(sum(bsxfun(@minus,radii,permute(r,str2num('3 2 1'))).^2,2))); mask = d1<5 & d2<5; Re = mean(any(mask)); Pr = sum(any(mask))/size(mask,1); assert(Pr>=0.5) assert(Re>=0.75)

[Warning: Duplicate directory name: /opt/mlsedu/matlab/R2015b/toolbox/stateflow/stateflow]

8   Fail

[Warning: Duplicate directory name: /opt/mlsedu/matlab/R2015b/toolbox/stateflow/stateflow]

9   Fail