使用Python,OpenCV制作不同风格的素描图(正常,漫画,写实风格)
使用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制作不同风格的素描图(正常,漫画,写实风格)相关推荐
- python 制作gif-利用Python如何制作好玩的GIF动图详解
前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...
- python Opencv和pyautogui实现自动识图点击
python Opencv和pyautogui实现自动识图点击 1.导入python及其他模块 匹配类是上一章博客内容,pyautogui自带的图片匹配效果不是很理想.就使用Opencv的图片匹配来实 ...
- 制作gif动图python_利用Python如何制作好玩的GIF动图详解
前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...
- 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 机器 ...
- python+opencv制作电脑摄像头扫描二维码并自动打开
在生活中我们有时候会遇到用电脑扫描更方便的情形,但是奈何现在的电脑程序都没有提供扫描二维码的功能,所以我花了半天的时间专门做了一个电脑扫描二维码程序. 实现目标:利用电脑摄像头识别二维码中的内容并自动 ...
- python opencv制作隐藏图片
前言 隐藏图片就是在白色背景和黑色背景显示出不同的图片,之前qq可以显示,现在好像也不行了,原因就是原来的qq,在发出来默认是白色背景,而点开后是黑色背景.但是这个原理还是挺有意思的,所以简单的研究了 ...
- python画动图-利用Python如何制作好玩的GIF动图详解
前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...
- pythongif字符动图,利用Python如何制作好玩的GIF动图详解
前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...
- 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 需要的模型 特征提取 ...
最新文章
- 首次揭秘!大麦如何应对超大规模高性能选座抢票?
- R语言head函数和tail函数获取dataframe、列表list、向量vector的头部和尾部数据:tail提取数据对象的尾部数据、head提取数据对象的头部数据、默认6条数据、自定义设置返回条数
- php 远程下载图片到本地
- Mac安装Dart的SDK
- sift分类java_使用SIFT / SURF进行特征匹配是否可以用于类似对象的分类?
- ArrayList的使用方法【转载】
- node redis集群_如何使用集群扩展Node.js服务器
- HDU.1002 A + B Problem II
- Head first 第一章
- UUID生成唯一激活码
- 拓端tecdat|R语言分位数回归Quantile Regression分析租房价格
- tomcat设置独立jvm的例子
- 云+智能的羊群效应显现,百度用“云智一体”坐定头羊位置
- php eval()函数
- 农产品区块链溯源:疫情催使下的农产品认知升级
- 软件测试的新技术和方法
- 多伦多大学朱子宁:一种选择语言探针的信息论观点
- unity开发 可使用Steam的Liv软件录制VR绿幕视频
- kaggle 深度学习训练内存不够
- DOA定位算法源码程序