I figured out the answer. The warpPolar call needed an additional flag set to specify how to fill in pixels outside of the source image. This works:
warpPolar( m, polar, Size(), Point( mom.m10/mom.m00, mom.m01/mom.m00) , len, INTER_LINEAR | CV_WARP_FILL_OUTLIERS);