Para una imagen tan simple, un núcleo de convolución como el siguiente encontrará bordes muy bien:
[-1 2 - 1]
Esto produce un píxel de borde único en cada punto de borde. Sin alboroto, sin muss. Canny está demasiado involucrado para este problema. Si desea encontrar puntos de borde para líneas en cualquier ángulo, puede usar un simple Laplaciano, Laplaciano de Gauss (LoG) o Diferencia de Gauss (DoG). Sobel y Prewitt también son simples pero inapropiados ya que producen una línea de "doble grosor".
Aquí se describe una implementación rápida y malvada de Hough:
http://www.ic.uff.br/~laffernandes/projects/kht/index.html
También hay algoritmos de "Hough sin parámetros" que son muy rápidos, pero un poco difíciles de implementar y depurar.