本文實(shí)例講述了Python實(shí)現(xiàn)將照片變成卡通圖片的方法。分享給大家供大家參考,具體如下:
在寬城等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站 網(wǎng)站設(shè)計(jì)制作按需定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營(yíng)銷(xiāo)型網(wǎng)站,成都外貿(mào)網(wǎng)站建設(shè),寬城網(wǎng)站建設(shè)費(fèi)用合理。之前的文章介紹了使用Photoshop將照片變成卡通圖片,今次介紹用代碼來(lái)實(shí)現(xiàn)這項(xiàng)任務(wù),可以就此探查各種濾鏡的內(nèi)部機(jī)制。
制作環(huán)境:Windows10,Python2.7,Anaconda
任務(wù)描述:將D盤(pán)某文件夾中的所有圖片使用代碼進(jìn)行卡通化,然后保存到另一文件夾中。
如前文所述,卡通化的關(guān)鍵是強(qiáng)化邊緣與減少色彩,所以使用Photoshop進(jìn)行卡通化的時(shí)候就使用了照亮邊緣和干筆畫(huà)的濾鏡來(lái)處理。使用代碼處理圖片的時(shí)候也是在對(duì)邊緣和色彩上做文章。以下使用OpenCV庫(kù)來(lái)對(duì)照片處理,大致分為四步來(lái)完成。
1. 應(yīng)用雙邊濾波器來(lái)減少圖像的色彩
2. 將彩色圖像轉(zhuǎn)換為灰度,應(yīng)用中值濾波器減少圖像中的圖像噪點(diǎn)
3. 使用自適應(yīng)閾值處理灰度圖像創(chuàng)建輪廓
4. 將來(lái)自步驟1的彩色圖像與來(lái)自步驟3的輪廓疊加
第1步:減少圖像色彩
因?yàn)殡p邊濾波器平滑平坦區(qū)域同時(shí)能保持邊緣清晰,所以很適合于將RGB圖像轉(zhuǎn)換為卡通。雖然速度好像慢一些一個(gè)技巧是重復(fù)(例如,通過(guò)num_bilateral = 7七次)應(yīng)用小雙邊濾波器,而不是只用一次大雙邊濾波器。
import cv2 num_down = 2 # 縮減像素采樣的數(shù)目 num_bilateral = 7 # 定義雙邊濾波的數(shù)目 img_rgb = cv2.imread("img_example.jpg") # 用高斯金字塔降低取樣 img_color = img_rgb for _ in xrange(num_down): img_color = cv2.pyrDown(img_color) # 重復(fù)使用小的雙邊濾波代替一個(gè)大的濾波 for _ in xrange(num_bilateral): img_color = cv2.bilateralFilter(img_color, d=9, sigmaColor=9, sigmaSpace=7) # 升采樣圖片到原始大小 for _ in xrange(num_down): img_color = cv2.pyrUp(img_color)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。