python视频处理为卡通风格_使用python代码将照片变成卡通图片
今次介紹用代碼來實現這項任務,可以就此探查各種濾鏡的內部機制。
制作環境:Windows10,Python2.7,Anaconda
任務描述:將D盤某文件夾中的所有圖片使用代碼進行卡通化,然后保存到另一文件夾中。
卡通化的關鍵是強化邊緣與減少色彩,所以使用Photoshop進行卡通化的時候就使用了照亮邊緣和干筆畫的濾鏡來處理。使用代碼處理圖片的時候也是在對邊緣和色彩上做文章。以下使用OpenCV庫來對照片處理,大致分為四步來完成。
應用雙邊濾波器來減少圖像的色彩
將彩色圖像轉換為灰度,應用中值濾波器減少圖像中的圖像噪點
使用自適應閾值處理灰度圖像創建輪廓
將來自步驟1的彩色圖像與來自步驟3的輪廓疊加
第1步:減少圖像色彩
因為雙邊濾波器平滑平坦區域同時能保持邊緣清晰,所以很適合于將RGB圖像轉換為卡通。雖然速度好像慢一些一個技巧是重復(例如,通過num_bilateral = 7七次)應用小雙邊濾波器,而不是只用一次大雙邊濾波器。
cv2.bilateralFilter中的三個參數控制像素鄰域的直徑(d)和顏色空間中的濾波器的標準偏差(sigmaColor)以及坐標空間(sigmaSpace)。
第2步:轉換為灰度,并使用中值濾波器減少噪點
OpenCV在邊緣檢測方面提供了多種選擇,自適應閾值處理的優點是可以檢測圖像的每個小領域中最突出的特征,獨立于圖像的整體屬性。
應用中值濾波器減少圖像的色彩。將原始的彩色圖片轉換為灰度圖片,接著應用中值模糊來減少灰度圖像中的噪聲。
第3步:創建輪廓
在降噪之后,就可以安全地應用自適應閾值來創建輪廓。 即使存在一些圖像噪聲,blockSize = 9的cv2.ADAPTIVE_THRESH_MEAN_C算法也會確保將閾值應用于9x9鄰域的平均值減去C = 2。
第4步:合并輪廓與彩色圖片
最后一步是將經處理的彩色圖像(img_color)與邊緣掩碼(img_edge)組合。至此,一個可以卡通化圖片的原始代碼就寫好了。圖片效果有點理工的審美,不夠文藝,效果上輸給了Photoshop,但是在效率上扳回一城。
最后將上述代碼封裝成函數。導入python的os模塊來方便文件處理。
作者:zc米蘭
原文地址:https://zhuanlan.zhihu.com/p/25556276
總結
以上是生活随笔為你收集整理的python视频处理为卡通风格_使用python代码将照片变成卡通图片的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vscode 怎么让光标一下子跳到行尾部
- 下一篇: python怎么用pip_python怎