導語
?Python不僅好用,而且好玩,?
Ps 小故事
哦?今天又到了三天換一次頭像的時間了~
你是不是在辛苦的在各大頭像網站翻來覆去!這不.....女朋友又開始催了:

其實心里的內心活動是這樣子的——多找找?總能找到她喜歡的吧!!!不想找,頭疼,找那完意兒還不如把時間留下
來打幾把英雄聯盟!!

今天小編給大家帶來一個好玩的庫——opencv-python
繼動漫化頭像——素描影像——今天借助它可以制作卡通化影像哦!
三大神器集合:再也不用擔心女友換頭像啦~
正文
1)環境搭建:
import cv2
from PIL import Image, ImageOps, ImageFilter
1.1 模塊安裝陳述句如下:
pip install -i https://pypi.douban.com/simple/ +模塊名
1.2 安裝成功如下圖:?(之前安裝過)

安裝成功后咱們就開始吧,go go go!
2)素材準備(展示部分可自選)

3)專屬卡通化制作
2.1 功能使用:
OpenCV的cvtColor()功能:將影像從彩色通道轉換為灰度通道,
OpenCV中的medianBlur() 函式:應用中值模糊,
OpenCV中的adaptiveThreshold() 函式:用于二值化處理影像,對于對比大的影像有較好效果,
2.2 詳細代碼如下
imgInput = input('請輸入需要轉換的圖片檔案路徑:')
a = input('請輸入圖片的模糊引數值(奇數,數值越大越模糊,風景類推薦值29,肖像類推薦值7):')
b = input('請輸入圖片的線條引數值(大于零時數值越小線條越明顯,小于零時圖片為暗色,風景類推薦值5,肖像類推薦值4):')
imgPath = imgInput.split(".")[0] + '_cartoon.' + imgInput.split(".")[1]
img_initial = cv2.imread(imgInput)
img_vague = cv2.medianBlur(img_initial, int(a))
img_gray = cv2.cvtColor(img_vague, cv2.COLOR_RGB2GRAY)
img_line = cv2.adaptiveThreshold(img_gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, blockSize=int(a), C=int(b))
img_line = cv2.cvtColor(img_line, cv2.COLOR_GRAY2RGB)
imgOutput = cv2.bitwise_and(img_vague,img_line)
cv2.imwrite(imgPath,imgOutput);
print('檔案保存在' + imgPath)
print('\n更改引數以獲得最佳效果\n')
4)效果展示
4.1 輸入的圖片各種引數如下:

效果 Part 1
?原圖——

?
卡通化之后——
?

?
4.2 輸入的圖片各種引數如下:

效果 Part 2
?原圖——

卡通化之后——?
?

?4.3 輸入的圖片各種引數如下:

效果 Part 3

總結
好啦!卡通化程式可以自己隨意設定數值的哈~想要什么樣子都可以,任何影像都可以的啦!
趕緊自己行動起來試試吧~😊原始碼免費領!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/347236.html
標籤:其他
上一篇:Python之人臉特征提取
