have a typical canvas inside of a canvas setup that allows to pan and zoom
the inner canvas has an image with the picture
place Visible circle widgets with opacity set to 0 (if you need hundreds of these - store the 2d vectors in a data table along with the relevant image)
clicking circle widgets changes their opacity
When it comes to circle widgets, it may be worth looking into creating a material rather than having one or even a bunch of images of different sizes. You will be scaling those up and down (if you need the zoom feature) so expect quite a bit of loss in quality. A material that draws a smoothly anti-aliased circle should work much better here.