curves -s 255,255 "0,18 31,19 64,62 86,100 110,139 124,159 142,181 161,200 194,223 250,255 255,255" wedding.jpg wedding_curves.png
Since your input image has no profile, but is marked sRGB, when I imported it into PS, I told PS to not add any color management. I then input those same breakpoints into PS curves and saved the image as wedding_ps_curves.png
Then I ran IM compare
compare -metric rmse wedding_curves.png wedding_ps_curves.png null:
1255.87 (0.0191634
This shows about 1.9% rmse difference.
Here are the two images for visual comparison.
My curves script

PS Curves

The main difference I see is that PS whites are oversaturated and show less detail in the wedding dress.