熱線電話:13121318867

登錄
首頁大數據時代嘿嘿!幾行代碼秒出美女素描圖!
嘿嘿!幾行代碼秒出美女素描圖!
2021-12-15
收藏

作者:閑歡

來源:Python 技術

今天上班時,我正在敲代碼。女朋友突然發了一張圖片給我:

“老公,我也想要一個這樣的頭像...” 后面跟著一個可憐的表情。

無奈,不管怎樣我只好應承下來。

下班回到家中,我準備把這個任務完成了。其實完全可以找個美顏的 APP ,上傳圖片,點幾下就好了。但是作為她心目中的技術大神,我肯定不能這么干,不然干嘛要讓我來做這件事情(要深刻理解女生的目的)。

我略加思索,感覺這件事情用 Python來實現并不困難。

實現步驟

實現需要用到的工具是 OpenCV 庫,用 OpenCV庫里面的圖片處理接口就能滿足需求。

安裝 OpenCV

安裝方法還是我們的老一套:

pip install opencv-python

讀取圖片

我從手機相冊中找了一張照片,發送到微信,然后保存到電腦上。

我們代碼的第一步就是要讀取這張圖片。

import cv2
img = cv2.imread("mv5.jpg")

轉換成灰度圖片

我們讀取的是 RGB 格式的圖片。接著,我們將這張圖片轉換為灰度圖片。

gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

轉換之后,圖片是這樣子的:

反轉灰度圖像

接下來,我們要將灰度圖像反轉,以便于增強圖像的細節。

inverted_image = 255 - gray_image

反轉之后,我們得到的圖片是這樣的:

看起來是不是有點恐怖?

創建鉛筆圖

最后,我們將反轉的圖像進行模糊處理,然后再將模糊的圖像倒置,最后將灰度圖像除以倒置的模糊圖像,就可以創建鉛筆草圖了。

blurred = cv2.GaussianBlur(inverted_img, (21, 21), 0)
inverted_blurred = 255 - blurred
pencil_sketch = cv2.divide(gray_img, inverted_blurred, scale=256.0)

我們使用 OpenCV 顯示一下:

cv2.imshow("original", img)
cv2.imshow("pencil", pencil_sketch)
cv2.waitKey(0)

最后輸出的圖像是這樣子的:

總結

別看我寫了這么幾個步驟,實際上代碼也就幾行而已。下次妹子問你能不能給她做素描圖像,千萬別甩一句:用美圖秀秀??!不然你會失去一個妹子的!


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢