简易的素描图片转换流程与实现
生活随笔
收集整理的這篇文章主要介紹了
简易的素描图片转换流程与实现
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
前言
之前經(jīng)常在網(wǎng)上看到用PS實現(xiàn)真實圖片到素描圖片的轉(zhuǎn)換,但是流程都大同小異,身為一只程序猿,必須來個一鍵轉(zhuǎn)化額。
國際慣例,參考博客:
Photoshop基礎(chǔ)教程:混合模式原理篇
顏色減淡的原理講解以及應(yīng)用
ps是如何通過最小值獲得描邊效果的?
圖紙轉(zhuǎn)線稿背后的計算機繪圖原理
步驟與實現(xiàn)
網(wǎng)上的流程大都分為四個步驟:
那么python實現(xiàn)也很方便:
第一步:讀圖片,轉(zhuǎn)灰度圖
img = cv2.imread('./images/zly1.jpg') # 去掉飽和度 img_gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)第二步:反向,圖像就變成了底片色
# 反相 img_inv = 255.0 - img_gray第三步:高斯模糊或者最小值濾鏡
# 高斯模糊 # img_filt = cv2.GaussianBlur(img_inv, ksize=(3, 3),sigmaX=0, sigmaY=0) # 最小值濾鏡 img_filt = np.zeros_like(img_inv,dtype=np.uint8) radius = 3; for i in range(radius,img_inv.shape[0]-radius):for j in range(radius,img_inv.shape[1]-radius):img_filt[i,j] = np.min(img_inv[i-radius:i+radius,j-radius:j+radius])關(guān)于高斯模糊或者最小值濾鏡的原理,可以看上面的參考博客,實測發(fā)現(xiàn)最小值濾鏡效果或更好。
第四步:顏色減淡
# color dodge A = img_gray.astype('float32') B = img_filt.astype('float32') img_dodge = A+(A*B)/(255.0-B)原理在第一篇參考博客,其實就是一個公式,用于混合兩組圖像。
可視化
plt.figure(figsize=(8,8)) plt.subplot(121) plt.imshow(img/255.0) plt.axis('off') plt.subplot(122) plt.imshow(img_dodge/255.0,cmap='gray') plt.axis('off')我穎美如畫…
有興趣可以自行去按照流程在PS中操作一遍,可以達(dá)到一樣的效果。
后記
記錄一下這個好玩的流程,代碼公布在微信公眾號簡介的github中,有興趣或者疑問歡迎關(guān)注公眾號,私信討論問題,持續(xù)更新骨骼動畫、機器學(xué)習(xí)、圖像相關(guān)有趣實用的知識點。
總結(jié)
以上是生活随笔為你收集整理的简易的素描图片转换流程与实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Web APIs简介
- 下一篇: sshpass用法介绍