This is Day 25 of the #100DaysOfPython challenge.
This post will use the OpenCV Python library to apply an oil painting effect to an image.
Let's create the
oil-paint-effect-with-open-cv-python directory and install Pillow.
# Make the `oil-paint-effect-with-open-cv-python` directory $ mkdir oil-paint-effect-with-open-cv-python $ cd oil-paint-effect-with-open-cv-python $ touch main.py # Init the virtual environment $ pipenv --three $ pipenv install opencv-python opencv-contrib-python # if you have issues with a hanging lockfile, try add the --skip-lock option
At this stage, you will need to add an image to the root of your directory. In my case, I will add
base_img.jpg to the directory (which will be an image from Unsplash).
We are now ready to start coding!
This section simply loads the image in var
base_img (assuming you are following the directory structure where the notebook is in the
import cv2 img = cv2.imread('./base_img.jpg')
Once that is complete, we can apply the oil paiting effect with one liner of code:
res = cv2.xphoto.oilPainting(img, 7, 1)
We can now compare by displaying the images:
cv2.imshow("original", img) cv2.imshow("res", res) cv2.waitKey(0) cv2.destroyAllWindows()
This will display the images in a window.
The original image:
After applying the effect:
When you are finished with viewing, hit escape to exit.
Today's post demonstrated how to use the
OpenCV package to programmatically apply an oil painting effect to an image.
Originally posted on my blog. To see new posts without delay, read the posts there and subscribe to my newsletter.