Cómo detectar bordes y recortar una imagen en Python

Soy nuevo en el procesamiento de imágenes en Python y estoy tratando de resolver un problema común. Tengo una imagen con la firma de una persona. Quiero encontrar los bordes y recortarlo para que se ajuste a la firma en la imagen.

Imagen de entrada

Rendimiento esperado

Intenté Canny Edge Detection y recorté la imagen usando una lista de soluciones existentes (artículos y respuestas) usando PIL, CV2, pero ninguna parece funcionar. Estoy buscando una solución de trabajo.

Algunas soluciones que probé:

https://www.quora.com/How-can-I-detect-an-object-from-static-image-and-crop-it-from-the-image-using-openCV

Recortar imagen desde todos los lados después de la detección de bordes

Cómo recortar el rectángulo más grande de una imagen

y muchos más ... Ninguno funcionó aunque parece muy simple. Encontré errores o resultados no esperados usando cualquiera de las soluciones existentes.

Respuestas a la pregunta(1)

Su respuesta a la pregunta