- OpenCV 4 with Python Blueprints
- Dr. Menua Gevorgyan Arsen Mamikonyan Michael Beyeler
- 218字
- 2021-06-24 16:49:57
Applying pencil sketch transformation
With the tricks that we learned from the previous sections in our bag, we are now ready to take a look at the entire procedure.
The final code can be found in the convert_to_pencil_sketch function within the tools.py file.
The following procedure shows you how to convert a color image into grayscale. After that, we aim to blend the grayscale image with its blurred negative:
- First, we convert an RGB image (imgRGB) into grayscale:
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_RGB2GRAY)
As you can see, we have used cv2.COLOR_RGB2GRAY as a parameter to the cv2.cvtColor function, which changes the color spaces. Note that it does not matter whether the input image is RGB or BGR (which is the default for OpenCV); we will get a nice grayscale image in the end.
- Then, we invert the image and blur it with a large Gaussian kernel of size (21,21):
inv_gray = 255 - gray_image
blurred_image = cv2.GaussianBlur(inv_gray, (21, 21), 0, 0)
- We use dodge to blend the original grayscale image with the blurred inverse:
gray_sketch = cv2.divide(gray_image, 255 - blurred_image,
scale=256)
The resulting image looks like this:
Image credit—"Lenna" by Conor Lawless is licensed under CC BY 2.0
Did you notice that our code can be optimized further? Let's take a look at how to optimize with OpenCV next.
推薦閱讀
- Web程序設計及應用
- Delphi程序設計基礎:教程、實驗、習題
- Flink SQL與DataStream入門、進階與實戰
- Machine Learning with R Cookbook(Second Edition)
- WSO2 Developer’s Guide
- Java深入解析:透析Java本質的36個話題
- Quarkus實踐指南:構建新一代的Kubernetes原生Java微服務
- AppInventor實踐教程:Android智能應用開發前傳
- 深入淺出React和Redux
- CodeIgniter Web Application Blueprints
- 超簡單:Photoshop+JavaScript+Python智能修圖與圖像自動化處理
- Android智能手機APP界面設計實戰教程
- Node.js應用開發
- Isomorphic Go
- HTML5程序設計基礎教程