1. A computer-implemented method comprising: receiving, using one or more processors, an input image; generating, using one or more processors, from the input image, a gradient vector image with a blur function applied; adding, using one or more processors, a base layer of brush strokes based on a sampling of underlying pixel values in the input image; adding, using one or more processors, a uniform layer of brush strokes iteratively based on a sampling of underlying pixel values in the input image, wherein directionality of the brushstrokes in the uniform layer is determined from the gradient vector image; and adding, using one or more processors, a detail layer of brush strokes based on a saliency map determined based on the gradient vector image.