This can be solved by using a combination of morphological operators and image processing steps:
1) label all the regions that are not the edges, say your current image is called imageWithEdges e.g. bwlabel(1-imageWithEdges). That will have a series of regions (i.e. superpixels), and the largest one is the road itself.
2) Use regionprops to find the area of all the regions. Select the one with the largest area as the road.
3) Fill the region as it will have some holes with imfill holes.
4) Find the edges of the new region, and thar would be a very good approximation to the edges of the road.
Hope this solves your problem.