最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用OpenCV實(shí)現(xiàn)人臉圖像卡通化的示例代碼

 更新時(shí)間:2021年01月15日 11:18:15   作者:Warmer_Sweeter  
這篇文章主要介紹了使用OpenCV實(shí)現(xiàn)人臉圖像卡通化的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

引言

通過(guò)前面的文章我們已經(jīng)了解到OpenCV 是一個(gè)用于計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)的開(kāi)源 python 庫(kù)。它主要針對(duì)實(shí)時(shí)計(jì)算機(jī)視覺(jué)和圖像處理。它用于對(duì)圖像執(zhí)行不同的操作,這些操作使用不同的技術(shù)對(duì)圖像進(jìn)行轉(zhuǎn)換。在本文中,我們將實(shí)現(xiàn)使用OpenCV將人臉圖像卡通化。

讓我們從導(dǎo)入必需的庫(kù)開(kāi)始!

import cv2
import numpy as np

第一次變換(卡通化)

在這個(gè)轉(zhuǎn)換中,我們將找到圖像的邊緣,并使用雙邊濾波器和位操作符制作一個(gè)卡通化的圖像。

# Reading the Image 
image = cv2.imread("image1.jpg")
# Finding the Edges of Image
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 
gray = cv2.medianBlur(gray, 7) 
edges = cv2.adaptiveThreshold(gray, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 9, 10)
# Making a Cartoon of the image
color = cv2.bilateralFilter(image, 12, 250, 250) 
cartoon = cv2.bitwise_and(color, color, mask=edges)
#Visualize the cartoon image 
cv2.imshow("Cartoon", cartoon) 
cv2.waitKey(0) # "0" is Used to close the image window
cv2.destroyAllWindows()

第二次變換(模糊圖像)

在第二次變換中,我們嘗試用一個(gè)邊緣保持濾波器來(lái)模糊圖像,并在邊緣上加入一個(gè)閾值。在這里我們使用的是高斯模糊。

#convert to gray scale
grayImage = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
#apply gaussian blur
grayImage = cv2.GaussianBlur(grayImage, (3, 3), 0)
#detect edges
edgeImage = cv2.Laplacian(grayImage, -1, ksize=5)
edgeImage = 255 - edgeImage
#threshold image
ret, edgeImage = cv2.threshold(edgeImage, 150, 255, cv2.THRESH_BINARY)
#blur images heavily using edgePreservingFilter
edgePreservingImage = cv2.edgePreservingFilter(image, flags=2, sigma_s=50, sigma_r=0.4)
#create output matrix
output =np.zeros(grayImage.shape)
#combine cartoon image and edges image
output = cv2.bitwise_and(edgePreservingImage, edgePreservingImage, mask=edgeImage)
#Visualize the cartoon image 
cv2.imshow("Cartoon", output) 
cv2.waitKey(0) # "0" is Used to close the image window
cv2.destroyAllWindows()

第三次變換(風(fēng)格化)

在這一變換過(guò)程中,我們將運(yùn)用風(fēng)格化的手法,創(chuàng)造出形象的卡通效果。

cartoon_image = cv2.stylization(image, sigma_s=150, sigma_r=0.25) 
cv2.imshow('cartoon', cartoon_image) 
cv2.waitKey(0) 
cv2.destroyAllWindows()

第四次變換(鉛筆素描)

在這個(gè)變換中,我們將分別創(chuàng)建一個(gè)彩色和黑白的鉛筆素描草圖形象。

cartoon_image1, cartoon_image2 = cv2.pencilSketch(image, sigma_s=60, sigma_r=0.5, shade_factor=0.02) 
cv2.imshow('pencil', cartoon_image1) 
cv2.waitKey() 
cv2.destroyAllWindows()

cv2.imshow('pencil', cartoon_image2)  
cv2.waitKey()  
cv2.destroyAllWindows()

總結(jié)

在本文中我們通過(guò)四次不同的變換將一個(gè)人臉圖像進(jìn)行了卡通化。通過(guò)這些變換,我們對(duì)OpenCV有了更加深入的了解,快來(lái)動(dòng)手試試吧~

到此這篇關(guān)于使用OpenCV實(shí)現(xiàn)人臉圖像卡通化的示例代碼的文章就介紹到這了,更多相關(guān)OpenCV 人臉圖像卡通化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python編程中time模塊的一些關(guān)鍵用法解析

    Python編程中time模塊的一些關(guān)鍵用法解析

    這篇文章主要介紹了Python編程中time模塊的一些關(guān)鍵用法解析,像mktime和localtime以及gmtime這些常用方法都有講到,需要的朋友可以參考下
    2016-01-01
  • 解決pytorch load huge dataset(大數(shù)據(jù)加載)

    解決pytorch load huge dataset(大數(shù)據(jù)加載)

    這篇文章主要介紹了解決pytorch load huge dataset(大數(shù)據(jù)加載)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • python 讀取串口數(shù)據(jù)的示例

    python 讀取串口數(shù)據(jù)的示例

    這篇文章主要介紹了python 讀取串口數(shù)據(jù)的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11
  • Python實(shí)現(xiàn)克里金插值法的過(guò)程詳解

    Python實(shí)現(xiàn)克里金插值法的過(guò)程詳解

    克里金算法提供的半變異函數(shù)模型有高斯、線形、球形、阻尼正弦和指數(shù)模型等,在對(duì)氣象要素場(chǎng)插值時(shí)球形模擬比較好。本文將用Python實(shí)現(xiàn)克里金插值法,感興趣的可以了解一下
    2022-11-11
  • 用Python實(shí)現(xiàn)簡(jiǎn)單的人臉識(shí)別功能步驟詳解

    用Python實(shí)現(xiàn)簡(jiǎn)單的人臉識(shí)別功能步驟詳解

    這篇文章主要介紹了用Python實(shí)現(xiàn)簡(jiǎn)單的人臉識(shí)別功能步驟詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Python 實(shí)現(xiàn)簡(jiǎn)單的電話本功能

    Python 實(shí)現(xiàn)簡(jiǎn)單的電話本功能

    這篇文章主要介紹了Python 實(shí)現(xiàn)簡(jiǎn)單的電話本功能的相關(guān)資料,包括添加聯(lián)系人信息,查找姓名顯示聯(lián)系人,存儲(chǔ)聯(lián)系人到 TXT 文檔等內(nèi)容,十分的細(xì)致,有需要的小伙伴可以參考下
    2015-08-08
  • Python隨機(jī)生成彩票號(hào)碼的方法

    Python隨機(jī)生成彩票號(hào)碼的方法

    這篇文章主要介紹了Python隨機(jī)生成彩票號(hào)碼的方法,涉及Python操作隨機(jī)數(shù)及字符串的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-03-03
  • 在Django的通用視圖中處理Context的方法

    在Django的通用視圖中處理Context的方法

    這篇文章主要介紹了在Django的通用視圖中處理Context的方法,Django是最具人氣的Python web開(kāi)發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • 關(guān)于pycharm卡死原因分析

    關(guān)于pycharm卡死原因分析

    這篇文章主要介紹了關(guān)于pycharm卡死原因分析,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • Python中方法鏈的使用方法

    Python中方法鏈的使用方法

    這篇文章主要為大家詳細(xì)介紹了Python中方法鏈的使用方法,方法鏈(method chaining)是面向?qū)ο蟮木幊陶Z(yǔ)言中的一種常見(jiàn)語(yǔ)法,對(duì)方法鏈感興趣的小伙伴們可以參考一下
    2016-02-02

最新評(píng)論

余干县| 济南市| 浪卡子县| 天镇县| 唐山市| 定陶县| 荃湾区| 云梦县| 巴中市| 南投县| 武城县| 名山县| 沂源县| 祁东县| 奉节县| 信宜市| 城口县| 华容县| 桑植县| 永新县| 嵊州市| 绩溪县| 肃宁县| 静乐县| 娄烦县| 隆林| 河津市| 交城县| 乌鲁木齐市| 萝北县| 宁武县| 岐山县| 蓬莱市| 时尚| 华阴市| 清远市| 阳城县| 察隅县| 北安市| 巴林右旗| 富源县|