学习如何使用 Python 将你的照片变成卡通版本
人工智能等各类编程培训资料整理,所有资源无秘无压缩-购买会员
本文将介绍使用 Python 将普通图像转换为卡通版的各种方法。我们将使用 Python 库和包,例如OpenCV、Pillow、scikit-image和matplotlib。
以下是该过程的基本概要:
导入必要的包。使用我们正在使用的三个库之一加载图像(OpenCV,Pillow 或scikit-image)。将图像转换为灰度。获取图像的边缘。将图像转换为卡通版本。使用matplotlib.pyplot或OpenCv显示图像使用 OpenCV#importthepackages
importcv2
importmatplotlib.pyplotasplt
#Loadtheimageusingcv2
img=cv2.imread(“4.jpg”)
img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
#Converttograyscaleandapplymedianblurtoreduceimagenoise
grayimg=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
grayimg=cv2.medianBlur(grayimg,5)
#Gettheedges
edges=cv2.adaptiveThreshold(grayimg,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,5,5)
#Converttoacartoonversion
color=cv2.bilateralFilter(img,9,250,250)
cartoon=cv2.bitwise_and(color,color,mask=edges)
#Displayoriginalimage
plt.figure(figsize=(2,2))
plt.imshow(img)
plt.axis(“off”)
plt.title(“OriginalImage”)
plt.show()
#Displaycartoonimage
plt.figure(figsize=(2,2))
plt.imshow(cartoon)
plt.axis(“off”)
plt.title(“CartoonImage”)
plt.show()
因为cv2 使用BGR颜色格式和matplotlib 使用RGB颜色格式,我们必须将BGR转换为RGB。
这可以使用以下代码完成:
img=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)
如果要使用 GUI 窗口显示输出,则cv2不需要转换颜色格式。可以使用以下代码在GUI窗口中查看:
#Displayoriginalimage
cv2.imshow(“OriginalImage”,img)
#Displaycartoonimage
cv2.imshow(“Cartoon”,cartoon)
#Tokeepthewindowopenuntiltheuserclosesitwecanuse
#thecv2.waitKeymethodpassing0asparameter
cv2.waitKey(0)
#Removethewindowfromscreenandmemoryafterexitingthescript
cv2.destroyAllWindows()
结果是这样的:
使用 skimage#import the packages
fromskimageimportio,color
fromskimage.filtersimportsobel
fromskimage.segmentationimportfelzenszwalb
importmatplotlib.pyplotasplt
#Loadtheimage
img=io.imread(“original.jpg”)
#Converttograyscale
grayimg=color.rgb2gray(img)
#Applythefelzenszwalbsegmentation
segments_fz=felzenszwalb(img,scale=100,sigma=0.5,min_size=50)
#Converttoacartoonversion
cartoon=color.label2rgb(segments_fz,img,kind=avg)
#Displayoriginalimage
plt.figure(figsize=(2,2))
plt.imshow(img)
plt.axis(“off”)
plt.title(“OriginalImage”)
plt.show()
#Displaycartoonimage
plt.figure(figsize=(2,2))
plt.imshow(cartoon)
plt.axis(“off”)
plt.title(“CartoonImage”)
plt.show()
结果是这样的:
使用 PIL#Importthepackages
importmatplotlib.pyplotasplt
fromPILimportImage,ImageOps,ImageFilter
#Loadtheimage
img=Image.open(“original.jpg”)
#Converttoacartoonversion
cartoon=ImageOps.posterize(img,2)
#Displaytheoriginalimage
plt.figure(figsize=(2,2))
plt.imshow(img)
plt.axis(“off”)
plt.title(“OriginalImage”)
plt.show()
#Displaythecartoonimage
plt.figure(figsize=(2,2))
plt.imshow(cartoon)
plt.axis(“off”)
plt.title(“CartoonImage”)
plt.show()
结果是这样的:
总之,使用 Python 将图像转换为卡通是一项简单而强大的任务。借助OpenCV、Pillow 和scikit-image等包的帮助,只需几行代码即可将图像卡通化。你可以尝试使用这些工具并了解如何将你的图片变成令人惊叹的卡通图片。
快乐编码!
600学习网 » 学习如何使用 Python 将你的照片变成卡通版本