国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

沈陽(yáng)看男科哪家醫(yī)院好廣州seo排名收費(fèi)

沈陽(yáng)看男科哪家醫(yī)院好,廣州seo排名收費(fèi),wordpress仿小米主題,動(dòng)漫做h免費(fèi)網(wǎng)站圖像到卡通 一、說(shuō)明 在當(dāng)今世界,我們被圖像和視頻所包圍。從社交媒體到廣告,圖像已成為一種強(qiáng)大的交流媒介。但是你有沒(méi)有想過(guò),如果你能把你的照片變成卡通會(huì)發(fā)生什么?想象一下,為您最喜歡的照片創(chuàng)建動(dòng)畫(huà)版本&#xf…
圖像到卡通

一、說(shuō)明

????????在當(dāng)今世界,我們被圖像和視頻所包圍。從社交媒體到廣告,圖像已成為一種強(qiáng)大的交流媒介。但是你有沒(méi)有想過(guò),如果你能把你的照片變成卡通會(huì)發(fā)生什么?想象一下,為您最喜歡的照片創(chuàng)建動(dòng)畫(huà)版本,或者將肖像轉(zhuǎn)換為異想天開(kāi)的插圖。

????????在本文中,我們將探討如何使用 Python 中的 OpenCV 庫(kù)將圖像轉(zhuǎn)換為卡通。OpenCV 是一個(gè)功能強(qiáng)大的計(jì)算機(jī)視覺(jué)庫(kù),為圖像和視頻處理提供了廣泛的功能,包括邊緣檢測(cè)、顏色轉(zhuǎn)換和過(guò)濾。我們將使用這些工具在給定的圖像上創(chuàng)建卡通效果。

????????為此,我們將首先導(dǎo)入必要的模塊并加載輸入圖像。接下來(lái),我們將對(duì)圖像應(yīng)用一系列轉(zhuǎn)換,包括邊緣檢測(cè)、顏色量化和雙邊濾波。最后,我們將結(jié)合這些轉(zhuǎn)換,在輸入圖像上創(chuàng)建卡通效果。在整篇文章中,我們將提供有關(guān)如何使用 OpenCV 實(shí)現(xiàn)每個(gè)轉(zhuǎn)換的分步說(shuō)明。在本文結(jié)束時(shí),您將清楚地了解如何使用 OpenCV 在任何輸入圖像上創(chuàng)建卡通效果。因此,讓我們深入了解如何使用OpenCV將圖像轉(zhuǎn)換為卡通!

二、導(dǎo)入必要的庫(kù)?

import cv2
import numpy as np
import os

2.1 代碼說(shuō)明:

  • import cv2導(dǎo)入 OpenCV 庫(kù),該庫(kù)為圖像和視頻處理提供了廣泛的功能。
  • import numpy as np導(dǎo)入 NumPy 庫(kù),這是一個(gè)流行的庫(kù),用于在 Python 中處理數(shù)組和矩陣。
  • import os導(dǎo)入操作系統(tǒng)模塊,該模塊提供了一種與文件系統(tǒng)交互的方法。

總的來(lái)說(shuō),這段代碼導(dǎo)入了在 Python 中使用 OpenCV 執(zhí)行圖像處理的必要模塊。

2.2 在 Python 中使用 OpenCV 顯示輸入圖像:

img = cv2.imread('original_picture.jpg')
cv2.imshow("original", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

原始圖片

2.3 代碼說(shuō)明:

  • cv2.imread('original_picture.jpg')將名為“original_picture.jpg”的輸入圖像加載到名為 的變量中。這是您想要的圖片的名稱。img
  • cv2.imshow("original", img)?在標(biāo)題為“原始”的窗口中顯示輸入圖像。
  • cv2.waitKey(0)等待按鍵。參數(shù) 0 表示程序?qū)o(wú)限期等待,直到按下某個(gè)鍵。
  • cv2.destroyAllWindows()?關(guān)閉所有打開(kāi)的窗口。

三、使用 K 均值聚類進(jìn)行顏色量化:

def color_quantization(img, k):
# Transform the imagedata = np.float32(img).reshape((-1, 3))# Determine criteriacriteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 20, 0.001)# Implementing K-Meansret, label, center = cv2.kmeans(data, k, None, criteria, 10, cv2.KMEANS_RANDOM_CENTERS)center = np.uint8(center)result = center[label.flatten()]result = result.reshape(img.shape)return result

3.1 功能說(shuō)明:

  • 該函數(shù)采用兩個(gè)參數(shù) — 輸入圖像和聚類數(shù)。imgk
  • 輸入圖像首先使用 NumPy 庫(kù)轉(zhuǎn)換為像素值的二維數(shù)組。
  • 為 K-Means 聚類分析算法確定一組條件,包括聚類中心的最大迭代次數(shù)和最小變化。
  • K 均值聚類分析算法使用 cv2.kmeans() 函數(shù)應(yīng)用于數(shù)據(jù),具有指定數(shù)量的聚類和條件。如果變量發(fā)生變化,該函數(shù)將生成具有不同數(shù)量顏色簇的新量化圖像。較小的值 將導(dǎo)致具有較少顏色的量化圖像,而較大的值 將導(dǎo)致具有更多顏色的量化圖像。kkk
  • 生成的聚類中心使用 NumPy 函數(shù)轉(zhuǎn)換為 8 位整數(shù)。np.uint8()
  • 原始圖像被展平為像素值的一維數(shù)組,每個(gè)像素被分配到其最近的聚類中心。
  • 然后將生成的像素值數(shù)組重新塑造回原始輸入圖像的形狀。
  • 生成的量化圖像作為函數(shù)的輸出返回。

3.2 創(chuàng)建邊緣遮罩:

def edge_mask(img, line_size, blur_value):gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)gray_blur = cv2.medianBlur(gray, blur_value)edges = cv2.adaptiveThreshold(gray_blur, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, line_size, blur_value)return edges

3.3 功能說(shuō)明:

  • 該函數(shù)有三個(gè)參數(shù)——輸入圖像、蒙版中線條的大小和應(yīng)用于灰度圖像的模糊程度。如果變量發(fā)生變化,掩碼中線條的大小也會(huì)相應(yīng)更改。較小的值將導(dǎo)致更細(xì)的線條,而較大的值將導(dǎo)致較粗的線條。imgline_sizeblur_valueline_size
  • 首先使用該函數(shù)將輸入圖像轉(zhuǎn)換為灰度。cv2.cvtColor()
  • 然后使用具有指定 .如果變量發(fā)生變化,應(yīng)用于灰度圖像的模糊級(jí)別將發(fā)生變化。較小的值將導(dǎo)致較少的模糊,而較大的值將導(dǎo)致更多的模糊。cv2.medianBlur()blur_valueblur_value
  • 通過(guò)使用該功能對(duì)模糊的灰度圖像應(yīng)用自適應(yīng)閾值來(lái)創(chuàng)建邊緣遮罩。這種自適應(yīng)閾值方法根據(jù)每個(gè)像素周圍局部鄰域中像素值的平均值計(jì)算每個(gè)像素的閾值。cv2.adaptiveThreshold()
  • 生成的邊緣掩碼作為函數(shù)的輸出返回。

四、從圖像生成鉛筆素描:

line_size = 7
blur_value = 7edges = edge_mask(img, line_size, blur_value)
cv2.imwrite('pencil_sketch.jpg', edges)
cv2.imshow('pencil sketch', edges)
cv2.waitKey(0)
cv2.destroyAllWindows()

鉛筆素描

4.1 代碼說(shuō)明:

  • 代碼首先將 和 的值設(shè)置為 7。如果 和 的值發(fā)生變化,則生成的鉛筆素描將受到影響。較小的 值將導(dǎo)致線條越細(xì),而較大的值將導(dǎo)致線條變粗。同樣,較小的 值將導(dǎo)致較少的模糊,而較大的值將導(dǎo)致更多的模糊,這可能會(huì)影響鉛筆草圖的整體外觀。line_sizeblur_valueline_sizeblur_valueline_sizeblur_value
  • 使用具有指定和 的函數(shù)從輸入圖像生成邊緣掩碼。imgedge_mask()line_sizeblur_value
  • 生成的邊緣遮罩使用該函數(shù)保存為名為“pencil_sketch.jpg”的新圖像文件。cv2.imwrite()
  • 然后使用該函數(shù)顯示鉛筆素描圖像。cv2.imshow()
  • 程序等待使用該函數(shù)的用戶按鍵。cv2.waitKey(0)
  • 最后,使用該功能關(guān)閉所有打開(kāi)的窗口。cv2.destroyAllWindows()

4.2 從圖像生成卡通:

total_color = 9
img = color_quantization(img, total_color)
cv2.imwrite('cartoonize.jpg', img)
cv2.imshow('Cartoonize', img)
cv2.waitKey(0)
cv2.destroyAllWindows()

卡通化圖片

4.3 代碼說(shuō)明:

  • 代碼首先將值設(shè)置為 9。如果值發(fā)生變化,則生成的卡通圖像將受到影響。較小的 值將導(dǎo)致較少的顏色,而較大的值將導(dǎo)致更多的顏色,這可能會(huì)影響卡通圖像的整體外觀。total_colortotal_colortotal_color
  • 調(diào)用該函數(shù)以將輸入圖像中的顏色數(shù)減少到指定的 。color_quantization()imgtotal_color
  • 生成的圖像被保存為一個(gè)名為“cartoonize.jpg”的新圖像文件使用該功能。cv2.imwrite()
  • 然后使用該功能顯示卡通圖像。cv2.imshow()
  • 程序等待使用該函數(shù)的用戶按鍵。cv2.waitKey(0)
  • 最后,使用該功能關(guān)閉所有打開(kāi)的窗口。cv2.destroyAllWindows()

五、對(duì)圖像應(yīng)用雙邊濾鏡:

bilateral = cv2.bilateralFilter(img, 15, 75, 75)
# Save the output.
cv2.imwrite('blur.jpg', bilateral)
img = cv2.imread('blur.jpg')
cv2.imshow("Blur", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

雙邊濾波

5.1 代碼說(shuō)明:

  • 代碼首先使用該函數(shù)將雙邊篩選器應(yīng)用于輸入圖像。篩選器大小設(shè)置為 15,西格瑪顏色和西格瑪空間的值均設(shè)置為 75。imgcv2.bilateralFilter()
  • 更改雙邊濾鏡的內(nèi)核大小、西格瑪顏色和西格瑪空間的值將影響應(yīng)用于圖像的模糊級(jí)別。較小的內(nèi)核大小和 sigma 值將導(dǎo)致較少的模糊,而較大的值將導(dǎo)致更多的模糊。更改這些值可能會(huì)更改生成的模糊圖像的整體外觀。
  • 生成的模糊圖像被保存為一個(gè)名為“blur.jpg”的新圖像文件,使用該功能。cv2.imwrite()
  • 然后使用該函數(shù)將模糊的圖像加載回內(nèi)存并分配給變量。cv2.imread()img

5.2 總輸出:

5.3 另一種方式:

import cv2
import numpy as np# Load the input image
img = cv2.imread('input_image.jpg')# Apply bilateral filter to smooth the image
img_smooth = cv2.bilateralFilter(img, 9, 75, 75)# Convert the image to grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)# Apply edge detection to the grayscale image
edges = cv2.Canny(gray, 100, 200)# Apply color quantization to the smoothed image
img_quant = cv2.cvtColor(img_smooth, cv2.COLOR_BGR2RGB)
Z = img_quant.reshape((-1,3))
Z = np.float32(Z)
criteria = (cv2.TERM_CRITERIA_EPS + cv2.TERM_CRITERIA_MAX_ITER, 10, 1.0)
K = 8
ret,label,center=cv2.kmeans(Z,K,None,criteria,10,cv2.KMEANS_RANDOM_CENTERS)
center = np.uint8(center)
res = center[label.flatten()]
res2 = res.reshape((img_quant.shape))# Combine the edges and color quantization to create the cartoon effect
cartoon = cv2.bitwise_and(res2, res2, mask=edges)# Display the output image and save it
cv2.imshow('Cartoon', cartoon)
cv2.waitKey(0)
cv2.destroyAllWindows()

????????總之,使用 OpenCV 將圖像轉(zhuǎn)換為卡通是一種有趣且創(chuàng)造性的方式,可以為您的照片賦予新的生命。在本文中,我們討論了如何使用 OpenCV 通過(guò)應(yīng)用各種圖像處理技術(shù)(如顏色量化、邊緣檢測(cè)和雙邊過(guò)濾)將圖像轉(zhuǎn)換為卡通。通過(guò)結(jié)合這些技術(shù),我們能夠從普通照片中制作出風(fēng)格化的卡通圖像。

????????雖然本文中提供的代碼是一個(gè)很好的起點(diǎn),但有很多方法可以自定義轉(zhuǎn)換過(guò)程以獲得不同的結(jié)果。嘗試不同的參數(shù)值或應(yīng)用其他圖像處理技術(shù)有助于創(chuàng)建獨(dú)特且個(gè)性化的卡通風(fēng)格圖像。有了一點(diǎn)創(chuàng)造力和一些圖像處理技術(shù)的知識(shí),可能性是無(wú)窮無(wú)盡的。

http://aloenet.com.cn/news/39647.html

相關(guān)文章:

  • 東營(yíng)網(wǎng)新聞精準(zhǔn)網(wǎng)站seo診斷報(bào)告
  • 網(wǎng)上免費(fèi)做網(wǎng)站seo 頁(yè)面鏈接優(yōu)化
  • 鎮(zhèn)江網(wǎng)站建設(shè) 的公司熱點(diǎn)新聞事件
  • 彩票推廣網(wǎng)站如何做杭州網(wǎng)站建設(shè)
  • 內(nèi)蒙古城鄉(xiāng)建設(shè)網(wǎng)站換名字了網(wǎng)絡(luò)推廣渠道都有哪些
  • 網(wǎng)站開(kāi)發(fā)工程師的要求站長(zhǎng)工具站長(zhǎng)之家官網(wǎng)
  • 成都網(wǎng)站開(kāi)發(fā)排名廈門關(guān)鍵詞排名優(yōu)化
  • 北京網(wǎng)站設(shè)計(jì)首選 新鴻儒360免費(fèi)建站教程
  • wordpress標(biāo)簽生成圖片基礎(chǔ)建站如何提升和優(yōu)化
  • wordpress 連接后臺(tái)關(guān)鍵詞優(yōu)化公司費(fèi)用多少
  • 網(wǎng)站內(nèi)移動(dòng)的圖片怎么做的深圳網(wǎng)絡(luò)優(yōu)化公司
  • 公司備案網(wǎng)站負(fù)責(zé)人是誰(shuí)網(wǎng)站推廣軟件哪個(gè)好
  • 淄博張店做網(wǎng)站的公司百度網(wǎng)站客服電話
  • 網(wǎng)站建設(shè)新聞發(fā)布注意事項(xiàng)互聯(lián)網(wǎng)怎么賺錢
  • 建設(shè)網(wǎng)站的英語(yǔ)怎么說(shuō)做網(wǎng)站的網(wǎng)絡(luò)公司
  • 微信小程序頁(yè)面模板seo文章是什么
  • 廣水市建設(shè)局網(wǎng)站線上培訓(xùn)
  • 建設(shè)網(wǎng)站的方案什么叫做優(yōu)化
  • rust做網(wǎng)站微商引流被加方法精準(zhǔn)客源
  • 如何建設(shè)成為營(yíng)銷網(wǎng)站百度客服電話24小時(shí)人工服務(wù)熱線
  • 向日葵域名怎么做網(wǎng)站成都網(wǎng)站搭建優(yōu)化推廣
  • 手機(jī)動(dòng)態(tài)網(wǎng)站開(kāi)發(fā)教程網(wǎng)絡(luò)營(yíng)銷的四大特點(diǎn)
  • 如何做網(wǎng)站本地服務(wù)器嗎廣告投放策略
  • 江蘇省建設(shè)人才網(wǎng)站軟文文案案例
  • 蘭州新站seo如何找推廣平臺(tái)
  • 假網(wǎng)站怎么做呢百度信息流投放技巧
  • 怎么提高網(wǎng)站曝光武漢seo優(yōu)化服務(wù)
  • 高能建站系統(tǒng)怎么收費(fèi)查詢網(wǎng)站流量的網(wǎng)址
  • 網(wǎng)站備案沒(méi)公司網(wǎng)絡(luò)口碑營(yíng)銷的成功案例
  • 主流跨境電商平臺(tái)有哪些?山東服務(wù)好的seo