Hough transform
When you increment the accumulator you can use a different value than 1. Instead you can calculate the gradient magnitude of the grayscale image and use that as an input to a continuously increasing function (such as the sigmoid function). This means that stronger edges get a higher impact in deciding where the final lines should be drawn and can give a better result.