【分享Python代码】图片转化为素描画

哈喽,大家好,我是木易巷~

代码生成效果图

原图:

图片

生成图:

图片

原图:

图片

生成图:

图片

准备工作

Python编程首先需要安装环境,下面是详细步骤:

会的小伙伴可自行跳过,代码在最后

1、安装Python教程

步骤一、双击打开Python.exe文件,出现如下界面

图片

注意:勾选√ Add Python 3.9 PATH 选项

这个选项会自动为Python添加变量环境给计算机(一定要选)

步骤二、选择自定义安装(Cutormize installation)

图片

步骤三、默认打勾内容,不用改,按Next按钮

图片

 步骤四、勾选 Install for all users选项

图片

Browse为选择安装路径,可以自定安装路径 D盘 C盘都可以。

步骤五、选择好后可以按-按钮 (Install)即可安装

图片

检查Python是否正常安装成功

1、打开CMD(Ctrl+R键) 输入cmd 再在终端输入Python

图片

2、出现以下内容即,安装成功

图片

3、在>>>后输入exit() 退出

4、再在终端输入 pip show pip  查看pip是否安装成功

图片

5、出现上例图片样式即安装成功!恭喜你!Python安装成功!

2、Pycharm使用教程

准备工作:

下载并安装Python解释器和Python开发工具Pycharm。

准备就绪后,开始使用Pycharm编写第一个python程序。

步骤 1. 打开 Pycharm,选择 Create New Project,创建一个新项目。

图片

步骤 2. 设置Python项目存放目录,同时选择要使用的解释器版本,点击Create。

图片

步骤 3. 右键项目, 选择New, 再选择Python File 创建Python文件。

图片

步骤 4. 点击完Python File后,在弹框中输入Python文件名后,回车创建Python文件成功。

图片

步骤 5. 显示 01-第一个Python程序.py 后表明文件创建成功,在右侧空白区输入代码后,再右键点击Run运行程序。

图片

步骤 6. 运行成功后,Pycharm Console窗口将显示我们的输出结果。

图片

运行成功就说明,环境以及配置都没有问题!

from PIL import Image
import numpy as npa = np.asarray(Image.open(r".\原图.jpg").convert('L')).astype('float')depth = 10.                        # (0-100)
grad = np.gradient(a)              #取图像灰度的梯度值
grad_x, grad_y =grad               #分别取横纵图像梯度值
grad_x = grad_x*depth/100.
grad_y = grad_y*depth/100.
A = np.sqrt(grad_x**2 + grad_y**2 + 1.)
uni_x = grad_x/A
uni_y = grad_y/A
uni_z = 1./Avec_el = np.pi/2.2                   # 光源的俯视角度,弧度值
vec_az = np.pi/4.                    # 光源的方位角度,弧度值
dx = np.cos(vec_el)*np.cos(vec_az)   #光源对x 轴的影响
dy = np.cos(vec_el)*np.sin(vec_az)   #光源对y 轴的影响
dz = np.sin(vec_el)                  #光源对z 轴的影响b = 255*(dx*uni_x + dy*uni_y + dz*uni_z)     #光源归一化
b = b.clip(0,255)im = Image.fromarray(b.astype('uint8'))      #重构图像
im.save(r".\手绘.jpg")
print("保存成功,请查看")

仔细看代码!! 注意图片命名,注意路径!!

--END--

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/108126.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4大软件测试策略的特点和区别(单元测试、集成测试、确认测试和系统测试)

四大软件测试策略分别是单元测试、集成测试、确认测试和系统测试。 一、单元测试 单元测试也称为模块测试,它针对软件中的最小单元(如函数、方法、类、模块等)进行测试,以验证其是否符合预期的行为和结果。单元测试通常由开发人…

医疗制药行业数字化创新实践

本文将为大家分享3个制药行业的创新案例吧,都是在不同智能制造落地场景下的典型案例,希望对大家有所启发。 01 医疗设备企业零代码搭建集成式信息化管理平台,年节省150余万元 医疗制药行业数字化实现工具>>>>https://www.jianda…

C/C++笔试易错题+图解知识点(二)—— C++部分(持续更新中)

目录 1.构造函数初始化列表 1.1 构造函数初始化列表与函数体内初始化区别 1.2 必须在初始化列表初始化的成员 2. 引用初始化以后不能被改变,指针可以改变所指的对象 3 构造函数与析构函数系列题 3.1构造函数与析构函数的调用次数 4 类的运算符重载 5 类的静态数据成…

MySQL配置环境变量和启动登录

如果不配置环境变量,每次登录 MySQL 服务器时就必须进入到 MySQL 的 bin 目录下,也就是输入“cd C:\Program Files\MySQL\MySQL Server 5.7\bin”命令后,才能使用 MySQL 等其它命令工具,这样比较麻烦。配置环境变量以后就可以在任…

vue小写数字转大写-例如:11转为十一

vue小写数字转大写-例如:11转为十一 在Vue中,可以使用自定义过滤器(Custom Filter)来将数字转换为大写的形式。 下面是一个示例: // main.js import Vue from vue;Vue.filter(toChineseNumber, function (value) {c…

4、在docker容器内的tomcat 中发布项目

1、查看本地是否有tomcat镜像,如果不存在则去下载 docker images 2、查看本地是否有tomcat容器,如存在跳过第3步 docker ps 3、创建tomcat容器 此容器用于复制tomcat的配置文件,配置文件复制后需删除此容器,如果已经存在跳过此步…

如何把视频压缩变小?

如何把视频压缩变小?大家都知道,视频一般都伴随着很大的文件体积,:尤其是现在的视频大多是高清晰度的,因此视频文件的体积就更加的大,视频体积太大会给我们带来很多的不便,主要是以下这几点&…

【数据结构C/C++】十大排序算法的实现思路以及易写易记忆版代码实现

文章目录 冒泡排序选择排序插入排序归并排序数组版本链表版本归并排序-内部缓存法 快速排序(重点讲解)堆排序(重点理解)计数排序基数排序桶排序希尔排序总结408考研各数据结构C/C代码(Continually updating&#xff09…

confluence版本升级

由于confluence的漏洞CVE-2023-22515的出现,现在需要升级版本 查看漏洞已修复版本: 需要升级到8.5.2 下载软件包: https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-8.5.2-x64.bin 完成后上传…

哪家好用?四款国内外远程桌面软件横测:ToDesk、向日葵、TeamViewer、AnyDesk

目录 前言 一、软件介绍 ​编辑1.ToDesk 2.向日葵 3.TeamViewer 4.AnyDesk 二、实测表现 【文件传输】 【聊天会话】 【独特功能】 ToDesk隐私屏和扩展屏 向日葵白板 eamViewer控制面板 AnyDesk“已发现”周边连接 【收费机制】 【安装下载】 三、总结 前言 …

Linux命令之chpasswd命令

一、chpasswd命令简介 chpasswd命令用于同时更改多个用户的密码。它可以从标准输入或指定的文件中读取用户名和密码的组合,并将其应用于系统中的用户。chpasswd命令通常用于批量更改用户密码,特别是在自动化脚本或批处理任务中,该命令需要roo…

【23真题】两电一邮之一,难度骤降!24可能回升!

今天分享的是23年电子科技大学858的信号与系统试题及解析。23成电858真题和22年相比,难度骤降!今年我预测可能会有反弹。22年成电858真题,是我做过的22真题中数一数二的难度!23年一般,但是题目也很好,真的很…

Excel——对其他工作表和工作簿的引用

一、引用其他sheet页表区域 若希望在公式中引用其他工作表的单元格区域,可以在公式编辑状态下,通过鼠标单击相应的工作表标签,然后选择相应的单元格区域。 例1 跨sheet页引用其他工作表区域 如图1所示的工作表Sheet2为工资表。 在Sheet1表…

Flink之窗口聚合算子

1.窗口聚合算子 在Flink中窗口聚合算子主要分类两类 滚动聚合算子(增量聚合)全窗口聚合算子(全量聚合) 1.1 滚动聚合算子 滚动聚合算子一次只处理一条数据,通过算子中的累加器对聚合结果进行更新,当窗口触发时再从累加器中取结果数据,一般使用算子如下: aggregatemaxmaxBy…

前端数据可视化之【Echarts介绍】

目录 🌟前言🌟丰富的可视化类型🌟多种数据格式无需转换直接使用🌟移动端优化🌟多渲染方案,跨平台使用!🌟写在最后 🌟前言 ECharts开源来自百度商业前端数据可视化团队&a…

力扣每日一题43:字符串相乘

题目描述: 给定两个以字符串形式表示的非负整数 num1 和 num2,返回 num1 和 num2 的乘积,它们的乘积也表示为字符串形式。 注意:不能使用任何内置的 BigInteger 库或直接将输入转换为整数。 示例 1: 输入: num1 "2"…

Python数据分析教程(非常详细)从零基础入门到精通,看完这一篇就够了

1、为什么选择Python进行数据分析? Python是一门动态的、面向对象的脚本语言,同时也是一门简约,通俗易懂的编程语言。Python入门简单,代码可读性强,一段好的Python代码,阅读起来像是在读一篇外语文章。Python这种特性…

ROS键盘遥控机器人,通过参数服务器指定速度

1、引言 在上节的驱动机器人,我们知道是cmd_vel话题发布一串Twist类型消息来控制,我们可以输入如下命令查看这个Twist的详细信息:rosmsg show geometry_msgs/Twist geometry_msgs/Vector3 linear float64 x float64 y float64 z geome…

macos 中ios系统升级,但是macos还是老系统,在手机上无法安装ios软件

https://github.com/filsv/iOSDeviceSupport 构建项目出现 解决的方法: 就可以了,

JDBC-day05(DAO及相关实现类)

七:DAO及相关实现类 1. DAO介绍 DAO:Data Access Object访问数据信息的类和接口,包括了对数据的CRUD(Create、Retrival、Update、Delete),而不包含任何业务相关的信息。有时也称作:BaseDAO作用…