imfindcirclesを使用してみるのはいかがでしょうか?
白黒にして比較し絶対値をとると穴が開いてない部分はわかるはずです。
そこにサークルを当てはめるイメージですかね
以下は例の部分を少し書き換えました
A = imread('coins.png');
imshow(A)
B = zeros(size(A));
imshow(B)
[centers, radii, metric] = imfindcircles(A,[15 30]);
centersStrong5 = centers(1:5,:);
radiiStrong5 = radii(1:5);
metricStrong5 = metric(1:5);
viscircles(centersStrong5, radiiStrong5,'EdgeColor','r');