plotdata = ListContourPlot[RandomReal[1RandomReal[1, {10, 10}], ];
plot = ListContourPlot[data, PlotLegends -> Automatic, Contours -> 5];
p1 = RegionCentroid[
Cases[Normal@plot, Line[x_] :> Polygon[x], Infinity][[-1]]];
Show[plot, Graphics[{Red, PointSize[.02], Point[p1]}]]
when you have multiple regions at the lowest level you'll need to manually take the 'last n' results from Cases
:
plot = ListContourPlot[data, PlotLegends -> Automatic, Contours -> 5];
pts = RegionCentroid /@
Cases[Normal@plot, Line[x_] :> Polygon[x], Infinity][[-9 ;;]];
Show[plot, Graphics[{Red, PointSize[.02], Point[pts]}]]
The green marker is the minimum for the interpolation function found by
Last@Quiet@
FindMinimum[
Interpolation[Flatten[MapIndexed[{#2, #} &, data, {2}], 1],
InterpolationOrder -> 3][x, y], {x, y}]
as you see its a little different.