简介

Python有着强大的功能,其中Numpy库可以以点的方式画图,还有一种妙用就是改变图片
该程序主要代码来源于MOOC,想学习完整过程戳这里>>MOOC嵩天
我跟着视频敲了这个程序的主要代码(使用的pycharm),然后添加了一些内容打包了一个.exe文件,需要的话自行下载

库缺少请自行搜索下载

上代码

# -*- coding: utf-8 -*-
"""
Created on Wed Apr 24 13:07:31 2019@author: 隰有游龙
"""from PIL import Image
from numpy import asarray,gradient,pi,sin,cos,sqrt
from tkinter.filedialog import askopenfilename, asksaveasfilename
from tkinter.messagebox import showinfo, showerror
from os import path
from tkinter import Tkroot = Tk()
root.withdraw()
default_dir = r"文件路径"
file_path = askopenfilename(title=u'选择文件', initialdir=(path.expanduser(default_dir)))
if file_path:try:last = path.splitext(file_path)[-1]Last = last[1:].upper()#来源MOOC嵩天 a = asarray(Image.open(file_path).convert('L')).astype('float')depth = 10.                      # (0-100)grad = gradient(a)             #取图像灰度的梯度值grad_x, grad_y = grad               #分别取横纵图像梯度值grad_x = grad_x*depth/100.grad_y = grad_y*depth/100.A = sqrt(grad_x**2 + grad_y**2 + 1.)uni_x = grad_x/Auni_y = grad_y/Auni_z = 1./Avec_el = pi/2.2                   # 光源的俯视角度,弧度值vec_az = pi/4.                    # 光源的方位角度,弧度值dx = cos(vec_el)*cos(vec_az)   #光源对x 轴的影响dy = cos(vec_el)*sin(vec_az)   #光源对y 轴的影响dz = 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'))  #重构图像showinfo('提示','修改完成!')fname = asksaveasfilename(title=u'保存文件', filetypes=[(Last,last)])im.save(str(fname) + last)except:showerror('错误','无法修改所选文件!')

上效果图(网上随便找的图)

一次变化效果最好,多次会重影(感觉建筑效果比较好)
至于这个打包文件这么大我也不知道该这么办(求大佬指教)
但是用来装个***还是很好用的(记得提前看效果,失败概不负责)

Python小程序——将彩色图片转变为手绘效果相关推荐

  1. 小狗的python代码_【Python】程序员教你用代码手绘一只可爱的小狗,正好拿去送给女朋友给她个惊喜...

    最近经常在抖音上刷到会画画的大神给小姐姐手绘各种可爱的小动物,非常的哇塞哦~ 作为程序员的我那是羡慕不已啊!我要是学会这招是不是可以尝试给我心仪很久的女神告白了?女神没准会很开心!(好吧,我承认我是舔 ...

  2. python降低图片分辨率_手把手:扫描图片又大又不清晰?这个Python小程序帮你搞定!...

    原标题:手把手:扫描图片又大又不清晰?这个Python小程序帮你搞定! 大数据文摘作品 编译:HAPPEN.于乐源.小鱼 一位乐于分享学生精彩笔记的大学教授对于扫描版的文件非常不满意--颜色不清晰并且 ...

  3. 【有趣的Python小程序】Python多个简单上手的库制作WalkLattice 走格子游戏 (思路篇)上

    篇写上一个思路篇,那么今天我们就来完成这一项工作 源代码和配套文件 链接: https://caiyun.139.com/m/i?135ClY1yWrSKX 提取码:e4pq 复制内容打开中国移动云盘 ...

  4. python小程序---设计签名

    python小程序-签名设计 签名设计 初学python,学习了基本语法后闲来无事,用所学知识写了一个设计签名的小程序.此程序中会用到爬虫和正则表达式等相关知识.我会用代码的形式向大家展示这样的一个小 ...

  5. python恶搞小程序-有趣的python小程序

    有趣的python小程序 1.密码生成器x=int(input()) print(''.join(__import__('random').choice('QWERTYUIOPASDFGHJKLZXC ...

  6. python日历小程序_一个查看网络设备信息Python小程序

    原标题:一个查看网络设备信息Python小程序 网络编程中,最常见的一个问题就是,获取设备信息. 首先我们,要学习如何获取本机的网络信息.我们将用到标准库中的socket库.假如说,我们要查看本机的 ...

  7. 小程序提交表单mysql_GitHub - kun19911227/minipro: 微信小程序提交带图片的表单

    minipro 微信小程序提交带图片的表单 目录说明 upload_images ├── pages │ ├── upload_info 提交表单 │ └── display_info 信息展示 ├─ ...

  8. 微信小程序:背景图片在电脑可以显示,真机测试时无法显示

    最近做小程序项目发现背景图片在电脑上可以显示 ,真机调试时就不显示 ,问了一下度娘转为base64或者网络地址图片就可以了. Page({data: {"image" : &quo ...

  9. 图片识别不了小程序怎么办_图片转文字【微信小程序】

    文字识别小程序在文章的底部 直接拉到文章底部就可使用 ↓↓↓↓↓↓ 工作中,很多时间需要把纸质文稿上的大段文字变成可编辑文字,有时我们会一个一个文字录入,有时我们可以采用扫描仪,我们也用过扫描全能王A ...

最新文章

  1. sony硬盘摄象机误格式化(fat32)的数据恢复
  2. 数据结构和算法-001 数组
  3. 【深入Java虚拟机JVM 03】Java内存模型
  4. oc-14-对象方法调用类方法
  5. RAPI简单说明及Sample Code
  6. Shell 脚本知识回顾 (五) —— Shell 循环
  7. php ip 短时间 重复,php 限制同一个IP 一段时间不能评论多次,能给我详细解决的...
  8. 数据结构基础(14) --链式队列的设计与实现
  9. c语言 整数转二进制取位,C语言位运算--将整数转换成二进制串以及反转整数后N位...
  10. 使用Rss框架PHP开发流程
  11. 深度学习笔记_基本概念_神经网络中的epoch、batch_size和iteration
  12. Rational rose 安装教程
  13. 织梦Dedecms源码文件夹目录模板解释说明
  14. 新导智能融合定位可视化物联系统
  15. AI经典书单:入门人工智能该读哪些书?
  16. 极限中0除以常数_酶动力学中的一些常数简介
  17. 来个模态kuang_使用 React 制作一个模态框
  18. 云币网及KYC【区块链生存训练】
  19. 互联网寒冬下的面经总结
  20. 脑波震动(二):全身脑波震动

热门文章

  1. STM32CubeMX实战教程(一)——软件入门
  2. Canvas制作经典贪吃蛇
  3. Oracle 分布式事务 2pc 故障处理
  4. annotation是什么,用处,举例
  5. 计算机应用制作ppt,计算机应用基础_幻灯片制作.ppt
  6. 方块粒子动画效果——UnityShader学习笔记
  7. es5的data语法_ES5与ES6数组方法总结
  8. Postman自动更新后打不开,collections接口目录突然消失
  9. 让电脑变成守时的小闹钟
  10. 不会Python没问题!用Excel实现简单的逻辑回归!