I think you can pretty accurately determine the shape using a simple threshold, for example:
convert image.jpg -threshold 90% result.jpg

and then you can do Canny edge detection like this:
convert image.jpg -threshold 90% -canny 0x1+10%+30% result.jpg

The next thing I'm looking at is to use the -trim function to find the coordinates of the trim frame, for example:
convert result.jpg -format "%@" info: 320x248+152+40
I noted on the red below.

If you really want to crop, use this:
convert result.jpg -trim result.jpg

As well as the angle of rotation
convert result.jpg -deskew 40 -format "%[deskew:angle]" info: -0.111906
Hough line detection can also be effective for you as follows:
convert image.jpg -threshold 90% -canny 0x1+10%+30% \ \( +clone -background none \ -fill red -stroke red -strokewidth 2 \ -hough-lines 5x5+80 -write lines.mvg \ \) -composite hough.png

And the lines.mvg file contains 4 lines you are looking for
# Hough line transform: 5x5+80 viewbox 0 0 640 360 line 449.259,0 474.432,360 # 90 line 0,72.5604 640,27.8072 # 143 line 0,293.098 640,248.344 # 187 line 153.538,0 178.712,360 # 153
Being a little lazy, I didnโt want to solve the problems of intersecting these lines, so I thought that I would let ImageMagick do this too - using Morphology to search for Line Junctions as follows:
convert image.jpg -threshold 90% -canny 0x1+10%+30% \ \( +clone -background none -fill red -stroke red -hough-lines 5x5+80 \) \ -composite -fuzz 50% -fill black -opaque white \ -morphology HMT LineJunctions hough.png
