python怎么画正方体素描_python如何将图片转换素描画
代码如下
# -*- coding:utf-8 -*-
import cv2
import numpy as np
from tkinter import filedialog, Tk
from os import getcwd
from re import findall
def open_path():
# 图片路径
root = Tk()
root.withdraw()
file_path = (filedialog.askopenfilename(title='选择图片文件', filetypes=[('All Files', '*')]))
return file_path
def dodgeNaive(image, mask):
# determine the shape of the input image
width, height = image.shape[:2]
# prepare output argument with same size as image
blend = np.zeros((width, height), np.uint8)
for col in range(width):
for row in range(height):
# do for every pixel
if mask[col, row] == 255:
# avoid division by zero
blend[col, row] = 255
else:
# shift image pixel value by 8 bits
# divide by the inverse of the mask
tmp = (image[col, row] << 8) / (255 - mask)
# print('tmp={}'.format(tmp.shape))
# make sure resulting value stays within bounds
if tmp.any() > 255:
tmp = 255
blend[col, row] = tmp
return blend
def dodgeV2(image, mask):
return cv2.divide(image, 255 - mask, scale=256)
def burnV2(image, mask):
return 255 - cv2.divide(255 - image, 255 - mask, scale=256)
def rgb_to_sketch(src_image_name):
print('转换中......')
img_rgb = cv2.imread(src_image_name)
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY)
# 读取图片时直接转换操作
# img_gray = cv2.imread('example.jpg', cv2.IMREAD_GRAYSCALE)
img_gray_inv = 255 - img_gray
img_blur = cv2.GaussianBlur(img_gray_inv, ksize=(21, 21),
sigmaX=0, sigmaY=0)
img_blend = dodgeV2(img_gray, img_blur)
# cv2.imshow('original', img_rgb)
# cv2.imshow('gray', img_gray)
# cv2.imshow('gray_inv', img_gray_inv)
# cv2.imshow('gray_blur', img_blur)
cv2.imwrite(dst_image_name, img_blend)
save_path = getcwd() + "\\" + dst_image_name # 保存路径
print('转换完成!!!\n')
print('保存路径:' + save_path)
cv2.imshow(save_path, img_blend)
cv2.waitKey(0)
cv2.destroyAllWindows()
if __name__ == '__main__':
print('请选择图片(路径不要含中文):')
src_image_name = open_path() # 文件路径
print(src_image_name + '\n')
image_name = ''.join(findall(r'[^\\/:*?"<>|\r\n]+$', src_image_name)) # 获取文件名
dst_image_name = 'Sketch_' + image_name
rgb_to_sketch(src_image_name)
效果如下
以上就是python如何将图片转换素描画的详细内容,更多关于python图片转换素描画的资料请关注python博客其它相关文章!
python怎么画正方体素描_python如何将图片转换素描画相关推荐
- python 人像素描_python如何将图片转换素描画
代码如下 # -*- coding:utf-8 -*- import cv2 import numpy as np from tkinter import filedialog, Tk from os ...
- python照片转素描_python如何将图片转换素描画
代码如下 # -*- coding:utf-8 -*- import cv2 import numpy as np from tkinter import filedialog, Tk from os ...
- python把图片转化为素描画_python如何将图片转换素描画 python将图片转换素描画代码示例...
python如何将图片转换素描画?本篇文章小编给大家分享一下python将图片转换素描画代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 代码如 ...
- python画素描画_python如何将图片转换素描画
代码如下 # -*- coding:utf-8 -*- import cv2 import numpy as np from tkinter import filedialog, Tk from os ...
- python素描画_python如何将图片转换素描画
代码如下 # -*- coding:utf-8 -*- import cv2 import numpy as np from tkinter import filedialog, Tk from os ...
- 用python给帅哥靓女们来张素描特写,图片转素描画
本工具主要是将彩色图片转换成黑白素描样式图片,给大家好玩下 源码参考了https://www.52pojie.cn/thread-1149417-1-1.html,在此基础上对中文输入路径和输出中文乱 ...
- python修改文件格式为jpg_python将.ppm格式图片转换成.jpg格式文件的方法
python将.ppm格式图片转换成.jpg格式文件的方法 将.ppm格式的图片转换成.jpg格式的图像,除了通过软件转换,还可以使用python脚本直接转换,so easy!!! from PIL ...
- python matplotlib画数据分布图_Python数据可视化之matplotlib
数据可视化能让人们更直观的传递数据所要表达的信息.Python 中有两个专用于可视化的库,matplotlib 和 seaborn ,本文将介绍matplotlib. Matplotlib:基于Pyt ...
- python如何画出多个独立的图片_python实现在一个画布上画多个子图
matplotlib 是可以组合许多的小图, 放在一张大图里面显示的. 使用到的方法叫作 subplot. 均匀画图 使用import导入matplotlib.pyplot模块, 并简写成plt. 使 ...
最新文章
- Guava学习笔记:Preconditions优雅的检验参数
- 给Source Insight做个外挂系列之二--将本地代码注入到Source Insight进程
- 1.IT-解决方案-1-FTP
- 新功能抢先看!Windows 11 2022 版全新 ISO 镜像来了+下载
- CSS之Responsive设计的关键三步
- Java中锁的使用和实现
- 数据结构链表例程_如何掌握RxJava例程的四个结构
- 编程输出2的90次方的精确值
- SSH中设置字符编码防止乱码
- python登录交换机执行命令_如何用Python脚本登录到交换机上修改配置?
- 剑指offer:序列化二叉(前序遍历+层次)
- antd 选择文件夹_antd 手动上传文件
- 重磅消息!三星、联想和微软的设备将会搭载Android 12L
- 简述事件接口与事件适配器的联系与区别_通过Redis学习事件驱动设计
- 代码也浪漫——Python烟花秀
- WSL2之gdb通过qemu调试ARM汇编(五)
- js中this的用法
- SIM800系列模块GSM/GPRS建立TCP连接到远端服务器过程——新浪博客迁移
- ArcGis如何创建/连接企业级地理数据库
- 钉钉和mis系统对接调研
热门文章
- linux双网卡 ipv4 ipv6 双栈,linux ipv4 ipv6双栈 (优先ipv4而不使用ipv6配置)
- Mac操作系统入手--新手教学
- python 自动化框架打包_python+requests接口自动化框架
- switch+ 三元运算符 +while +do while +for
- 英语的重要性对于程序员来说
- 80后新手装修完全攻略(转载)
- Paper Reading:3DIoUMatch:Leveraging IoU Prediction for Semi-Supervised 3D Object Detection
- java POI导出excel画斜线
- 罗技K375s如何切换通道
- 十年前你绝对没有看懂的《大话西游》