python绘制动漫人物,用python画动漫人物代码
我正在尝试制作一个能使任何图像看起来像卡通漫画的功能。
这是我到目前为止的代码:
进口数量
导入cv2
__作者__=迈克尔贝耶勒
__许可证__=GNU GPL 3.0或更高版本
类别卡通化器:
def __init__(self):
self.numDownSamples=1
self.numBilateralFilters=7
定义渲染(自身,img_rgb):
#使用高斯金字塔对图像进行下采样
img_color=img_rgb
对于_在范围(self.numDownSamples):
img _ color=cv2。色彩向下(img _ color)
#重复应用小型双边过滤器,而不是应用
#一个大型过滤器
对于_在范围(自身数字过滤器):
img _ color=cv2。双边滤镜(img _ color,9,9,7)
#将图像向上采样到原始大小
对于_在范围(self.numDownSamples):
img _ color=cv2。pyrap(图像颜色)
#转换为灰度并应用双边模糊
img_gray=cv2.cvtColor(img_rgb,cv2 .彩色_ RGB 2灰色)
对于_在范围(自身数字过滤器):
img _ gray _ blur=cv2。双边滤波器(img _ gray,9,9,7)
#检测和增强边缘
img _ edge=cv2。自适应阈值(img _ gray _ blur,255,
cv2 .自适应_阈值_高斯_C,
cv2 .THRESH_BINARY,9,5)
#转换回彩色,以便可以与彩色图像进行位与运算
img_edge=cv2.cvtColor(img_edge,cv2 .COLOR_GRAY2RGB)
#确保img _颜色和img _边缘大小相同,否则按位与不起作用
height=min(len(img_color),len(img_edge))
width=min(len(img_color[0]),len(img_edge[0])
img_color=img_color[0:高度,0:宽度]
img_edge=img_edge[0:高度,0:宽度]
返回cv2.bitwise_and(img_color,img_edge)
我原来是这样的:
这是我的脚本输出的内容:
这就是我需要的:
到目前为止我注意到的是:
我模糊图像的代码有太多的颜色,我需要从浅色到暗色的平滑过渡。
当我的代码产生大量噪音("孤独的"黑点)并分割线条时,目标图像有平滑的边缘,即线条。
我尝试过更改一些参数,添加了几个随机过滤器,但我真的不知道接下来要做什么。
任何帮助是极大的赞赏。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。