python把图片转为素描,python照片转化为漫画

  python把图片转为素描,python照片转化为漫画

  【相关学习推荐:python教程】

  本文实例为大家分享了大蟒实现图片转换成素描和漫画格式的具体代码,供大家参考,具体内容如下

  原图

  图片转换后的成果

  源码

  # -*-编码: utf-8 -*-

  导入cv2

  从太平航运导入图像、图像操作、图像过滤器

  # 转换成漫画风格

  def to carttonstyle(picturePath):

  # 设置输入输出路径和文件名称

  imgInput_FileName=picturePath

  imgOutput _ FileName=picturepath。拆分( . )[0] _卡通 picturePath.split( . ))[1]

  # 属性设置

  num_down=2 #缩减像素采样的数目

  数量_双边=7 #定义双边滤波的数目

  # 读取图片

  img _ RGB=cv2。即时消息阅读(即时消息输入文件名)

  # 用高斯金字塔降低取样

  img_color=img_rgb

  对于_在范围(数字向下):

  img _ color=cv2。色彩向下(img _ color)

  # 重复使用小的双边滤波代替一个大的滤波

  对于_在范围(数量_双边):

  img _ color=cv2。双边滤波器(img _ color,d=9,sigmaColor=9,sigmaSpace=7)

  # 升采样图片到原始大小

  对于_在范围(数字向下):

  img _ color=cv2。pyrap(图像颜色)

  # 转换为灰度并且使其产生中等的模糊

  img_gray=cv2.cvtColor(img_rgb,cv2 .彩色_ RGB 2灰色)

  img _ blur=cv2。medianblur(img _ gray,7)

  # 检测到边缘并且增强其效果

  img _ edge=cv2。自适应阈值(img _ blur,255,

  cv2 .自适应_阈值_平均值_C,

  cv2 .THRESH_BINARY,

  块大小=9,

  C=2)

  # 算法处理后,照片的尺寸可能会不统一

  # 把照片的尺寸统一化

  height=img_rgb.shape[0]

  width=img_rgb.shape[1]

  img_color=cv2.resize(img_color,(width,height))

  # 转换回彩色图像

  img_edge=cv2.cvtColor(img_edge,cv2 .COLOR_GRAY2RGB)

  img _ cartoon=cv2。按位与(img _ color,img_edge)

  # 保存转换后的图片

  cv2.imwrite(imgOutput_FileName,img_cartoon)

  打印(文件转换成漫画成功,保存在imgOutput_FileName)

  # 透明度转换素描转换的一部分

  极好的道奇(a,b,alpha):

  #阿尔法为图片透明度

  return min(int(a * 255/(256-b * alpha)),255)

  # 图片转换为素描

  def toSketchStyle(picturePath,blur=25,alpha=1.0):

  # 设置输入输出路径和文件名称

  imgInput_FileName=picturePath

  imgOutput _ FileName=picturepath。拆分( . )[0] _Sketch .picturePath.split( . )))[1]

  # 转化成国际矿物学会对象

  img=Image.open(picturePath)

  # 将文件转成灰色

  img1=img.convert(L )

  img2=img1.copy()

  img2=ImageOps.invert(img2)

  # 模糊度

  对于范围内的我(模糊):

  img2=img2.filter(图像过滤器.模糊)

  宽度,高度=img1.size

  对于范围(宽度):内的x

  对于范围(高度):内的y

  a=img1.getpixel((x,y))

  b=img2.getpixel((x,y))

  img1.putpixel((x,y),dodge(a,b,alpha))

  # 保存转换后文件

  img1.save(imgOutput_FileName)

  打印(文件转换成漫画成功,保存在imgOutput_FileName)

  if __name__==__main__:

  imgInput_FileName=input(输入文件路径:)

  而True:

  打印( 1,漫画风格)

  打印( 2,素描风格)

  userChoose=input(请选择风格(输入序号即可):)

  如果用户选择. eq__(1):

  toCarttonStyle(img输入文件名)

  破裂

   否则如果用户选择. eq__(2):

  toSketchStyle(img输入文件名)

  破裂

  else:

  打印(违法输入(请输入序号))

  破裂相关学习推荐:编程视频

  以上就是巧用大蟒实现图片转换成素描和漫画格式的详细内容,更多请关注盛行信息技术软件开发工作室其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: