You can easily try out the stable matching between arbitrary point patterns using my R-package: matchingpp
Installation and usage are explained on github.
Two point patterns (e.g. a stationarized lattice, a Poisson point process, or data from csv files) are matched to each other via the stable mutual nearest neighbor matching (on the torus in arbitrary dimensions). Typically this results in a thinnig of one of the two point patterns.