Not sure what an outline really is so maybe:
Composition[
Graphics[{PointSize@SmallGraphics[GraphicsComplex[#, Point@#}Line@Last@FindShortestTour@#], Frame -> True] &
, Function[image,
Transpose @ MapThread[
Rescale[#, {#2, #3}, {##4}] &,
{#Transpose[#], {0., 0.}, ImageDimensions@image,
Sequence @@ Transpose@{{5, 25}, {13, 25}}}
] & /@ PixelValuePositions[image, 1]
]
, Binarize
, Thinning
, EdgeDetect
, Binarize
, ColorNegate
, Rasterize[#, ImageSize -> 500] &
] @ Graphics[
spoly,
PlotRange -> {{5, 25}, {13, 25}},
ImageMargins -> 0]