Count # of Cookie Chocolate Chips Note: this is my first post here.

The Challenge

The challenge is to count the number of chocolate chips in a cookie. A cookie in this case is a circle with dots (the chips) in it. Given any square cartoon image of this cookie, you are to write a bot that counts and outputs the number of chocolate chips.

Rules


Has to take in an image type of png.
It has to be able to take in any file size, as long as it is square.
It has to be able to handle both color and B&amp;W images.
Output can be in any  human-understandable form.
The circle will be filled with color and will have an outline.
Chips will all be the same size and color.
There is only one cookie in the image
Chocolate chips may be irregularly spaced, but are perfect circles.
You can use a library.
There is nothing in the image except the cookie and the chocolate chips.
-All other cookies will look like the example images.


This is code-golf; the shortest code gets accepted.

Examples

Cookie 1 => 8 or 1000 (binary)
Cookie 2 => 8 or 1000 (binary)
Cookie 3 => 10 or 1010 (binary)
Cookie 4 => 7 or 0111 (binary)
Mathematica 134 Bytes

Max@ComponentMeasurements[ArrayComponents[ImageData@ColorQuantize[RemoveAlphaChannel[#,White],4,Dithering-&gt;False],2],"Holes"][[All,2]]&amp;


Usage (applied to .png images)

%/@cookies


Output:

{8,8,10,7}


Here's the code to bring in the cookie examples:

cookieURLs={"https://i.stack.imgur.com/UCV1A.png","https://i.stack.imgur.com/5n7AY.png","https://i.stack.imgur.com/ZbZx6.png","https://i.stack.imgur.com/M8jTo.png"};
cookies=Import/@cookieURLs;


I'm sure this can be shortened, but I think it's fairly bullet-proof as is. The original images have many more colors than the eye can see.

Here are the original cookies:



Here are the cookies after cleanup to get them into a 4 component array:

ArrayPlot[ArrayComponents[ImageData@ColorQuantize[RemoveAlphaChannel[#,White],4,Dithering-&gt;False],2]]&amp;/@cookies//Row




After that, all is needed is to use ComponentMeasurements to count holes.
This will always report at least 1.  You could have one really big chocolate chip filling the cookie border, so the 0 or 1 case will always be ambiguous.