使用Python,OpenCV制作不同风格的素描图(正常,漫画,写实风格)

这篇博客将介绍如何使用Python,OpenCV制作不同风格的素描图(正常风格,漫画风格,写实风格)。

1. 效果图

原始图 VS 正常风格素描图 VS 漫画风格素描图 VS 写实风格素描图如下:


原始图 VS 正常风格素描图 VS 漫画风格素描图 VS 写实风格素描图如下:

源码

# 照片转字符画
# USAGE
# python img2zfh.py --image images/ym.jpg
# python img2zfh.py --image images/comic.jpg
import argparseimport cv2
import imutils# 构建命令行参数及解析
# --image 要转字符画的图像
ap = argparse.ArgumentParser()
ap.add_argument("-i", "--image", required=False, default="images/ym.jpg",help="path to input image to be ZFH'd")
args = vars(ap.parse_args())def zcfg(src_image, dst_image):img_rgb = cv2.imread(src_image)cv2.imshow("origin", imutils.resize(img_rgb, width=300))img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_RGB2GRAY)# adaptiveThreshold()会在图片的每一个小的局部区域内进行二值化操作,因此对于一些清晰度比较高、色彩区分比较细腻的图片,就会出现上面这样密密麻麻的情况。img_edge = cv2.adaptiveThreshold(img_gray, 255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY, blockSize=3, C=2)cv2.imwrite(dst_image, img_edge)cv2.imshow("zcfg_dst", imutils.resize(img_edge, width=300))cv2.waitKey(0)def mhfg(src_image, dst_image):img_rgb = cv2.imread(src_image)img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_RGB2GRAY)img_gray = cv2.medianBlur(img_gray, 5)  # 漫画风格# adaptiveThreshold()会在图片的每一个小的局部区域内进行二值化操作,因此对于一些清晰度比较高、色彩区分比较细腻的图片,就会出现上面这样密密麻麻的情况。img_edge = cv2.adaptiveThreshold(img_gray, 255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY, blockSize=3, C=2)cv2.imwrite(dst_image, img_edge)cv2.imshow("mhfg_dst", imutils.resize(img_edge, width=300))cv2.waitKey(0)def xsfg(src_image, dst_image):img_rgb = cv2.imread(src_image)img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_RGB2GRAY)img_blur = cv2.GaussianBlur(img_gray, ksize=(21, 21),sigmaX=0, sigmaY=0)  # 写实风格# cv2.divide()本质上进行的是两幅图像素级别的除法操作,其得到的结果可以简单理解为两幅图之间有明显差异的部分。img_edge = cv2.divide(img_gray, img_blur, scale=255)cv2.imwrite(dst_image, img_edge)cv2.imshow("xsfg_dst", imutils.resize(img_edge, width=300))cv2.waitKey(0)src_image = args["image"]
zcfg(src_image=src_image, dst_image=src_image.replace(".jpg", "_zc.jpg"))
mhfg(src_image=src_image, dst_image=src_image.replace(".jpg", "_mh.jpg"))
xsfg(src_image=src_image, dst_image=src_image.replace(".jpg", "_xs.jpg"))

使用Python,OpenCV制作不同风格的素描图(正常,漫画,写实风格)相关推荐

  1. python 制作gif-利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

  2. python Opencv和pyautogui实现自动识图点击

    python Opencv和pyautogui实现自动识图点击 1.导入python及其他模块 匹配类是上一章博客内容,pyautogui自带的图片匹配效果不是很理想.就使用Opencv的图片匹配来实 ...

  3. 制作gif动图python_利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

  4. python与人工智能课程设计_人工智能+机器人入门与实战:用树莓派+Python+OpenCV制作计算机视觉机器人...

    第 1 章 走近人工智能 1 1.1 初识人工智能 2 1.1.1 人工智能是什么 2 1.1.2 人工智能的发展历程 2 1.1.3 人工智能的应用现状 4 1.2 机器人世界 5 1.2.1 机器 ...

  5. python+opencv制作电脑摄像头扫描二维码并自动打开

    在生活中我们有时候会遇到用电脑扫描更方便的情形,但是奈何现在的电脑程序都没有提供扫描二维码的功能,所以我花了半天的时间专门做了一个电脑扫描二维码程序. 实现目标:利用电脑摄像头识别二维码中的内容并自动 ...

  6. python opencv制作隐藏图片

    前言 隐藏图片就是在白色背景和黑色背景显示出不同的图片,之前qq可以显示,现在好像也不行了,原因就是原来的qq,在发出来默认是白色背景,而点开后是黑色背景.但是这个原理还是挺有意思的,所以简单的研究了 ...

  7. python画动图-利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

  8. pythongif字符动图,利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

  9. python opencv把32位的灰度图变成8位的灰度图_python简单换脸程序

    环境 windows 10 64位 Python 3.6 PyCharm 开发工具 dlib 19.6.1 numpy 1.15.4 opencv-python 3.4.5.20 需要的模型 特征提取 ...

最新文章

  1. 首次揭秘!大麦如何应对超大规模高性能选座抢票?
  2. R语言head函数和tail函数获取dataframe、列表list、向量vector的头部和尾部数据:tail提取数据对象的尾部数据、head提取数据对象的头部数据、默认6条数据、自定义设置返回条数
  3. php 远程下载图片到本地
  4. Mac安装Dart的SDK
  5. sift分类java_使用SIFT / SURF进行特征匹配是否可以用于类似对象的分类?
  6. ArrayList的使用方法【转载】
  7. node redis集群_如何使用集群扩展Node.js服务器
  8. HDU.1002 A + B Problem II
  9. Head first 第一章
  10. UUID生成唯一激活码
  11. 拓端tecdat|R语言分位数回归Quantile Regression分析租房价格
  12. tomcat设置独立jvm的例子
  13. 云+智能的羊群效应显现,百度用“云智一体”坐定头羊位置
  14. php eval()函数
  15. 农产品区块链溯源:疫情催使下的农产品认知升级
  16. 软件测试的新技术和方法
  17. 多伦多大学朱子宁:一种选择语言探针的信息论观点
  18. unity开发 可使用Steam的Liv软件录制VR绿幕视频
  19. kaggle 深度学习训练内存不够
  20. DOA定位算法源码程序

热门文章

  1. linux压缩分区大小,linux如何无损调整分区大小的详细介绍
  2. jmeter+csv+ant接口自动化测试--利用apache-ant执行测试用例并生成HTML格式测试报告(二)
  3. 走过了十年,亚信安全用什么引领云安全发展?
  4. 计算机音乐春分秋分,春分秋分是怎么确定的
  5. 【C语言程序设计】实验 7
  6. 操作系统——放置策略
  7. 人大金仓国产化数据库适配
  8. 电脑报,轻薄本中的西装暴徒:机械革命Code01评测
  9. 第37篇 Android Studio实现点击图片显示信息(四)布局及资源文件
  10. php教程数据库,php数据库基础