Peak detection in a 2D array
stackoverflow.com
stackoverflow.com
edit: come to think of it, something like mean-shift or ICP would probably do very well on this.
I used some Numerical Recipes formulas to do a linear interpolation on the data and upscale it into a larger grid, then used OpenCV to threshold and then find contours.
It works pretty well, but I wish I could process the data faster. I fear using this Python example with mapping and overlaps would just run way way longer.
1. Apply a low pass filter, such as convolution with a 2D gaussian mask. This will give you a bunch of (probably, but not necessarily floating point) values.
2. Perform a 2D non-maximal suppression using the known approximate radius of each paw pad (or toe).
This should give you the maximal positions without having multiple candidates which are close together. Just to clarify, the radius of the mask in step 1 should also be similar to the radius used in step 2. This radius could be selectable, or the vet could explicitly measure it beforehand (it will vary with age/breed/etc).
Some of the solutions suggested (mean shift, neural nets, and so on) probably will work to some degree, but are overly complicated and probably not ideal.