I need to apply Van Gogh's stroke brush effect to a random image
Take the following image as an example:
Thank you so much if you could help!
Here is a different approach using
Here is the
I use a gentle tone-mapping on the original image to equalise the brightness a bit, and then combine the ton-mapped image with the brush strokes.
You can vary the effect by altering parameters such as the scale of the gradient orientation filter and the length of the lines.
Here's an attempt using tone mapping to equalise the brightness across the image, and a gradient filter to enhance outlines. I added some noise to the image before doing the gradient filter, to try and get some variation in the sky. I found it quite difficult to avoid highlighting the jpeg artefacts in the sky.
Mathematica has a few very limited 'effects' built-in:
But for the best effects, you'll have to start drinking absinthe...
Here is the original image:
Now we smooth is nicely with the
And generate a gradient image of the original image:
Using the gradient image we now compute an image based on a series of
Finally we compose the final image:
Simply tune the parameters a bit and adjust them to your needs - Van Gogh would certainly be jealous ;).
I see the "Van Gogh" style as a combination of brush strokes and an averaging filter. This is the best result of my effort to simulate this style. I'm sure someone with better knowledge can improve it.
First, we try to split the picture to regions that will have the same brush stroke pattern.
Next, we select significant parts and create masks for them:
Then we create brush strokes:
Finally, we apply masks on our image and combine them together:
There are two issues with this method:
1) Brush strokes take a very long time to generate with my method (using
2) The borders between the components can be seen in the final image. I'm not sure how to avoid this.