首页

文章

用Python写过哪些的小工具

发布网友 发布时间:2022-03-25 21:37

我来回答

1个回答

热心网友 时间:2022-03-25 23:06

为了逃避学校布置的美术作业,写过一个画素描的程序。
从后再也不担心美术作业了。
也就是利用Python的PIL库来 将彩色图片转化为素描效果的图片

更新说明:
前面那个程序写的太粗糙了,不好意思拿出来分享,重新写了一遍,加上了GUI图形界面。
配置环境:
windows 10
python 3.5

image.py
from PIL import Image
import numpy as np
import os
import join
import time
def image(sta,end,depths=10):
a = np.asarray(Image.open(sta).convert('L')).astype('float')
depth = depths # (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. / A
vec_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(end)

def mains(numbers):
number = int(numbers)
startss = os.listdir(".\输入----图片")
time.sleep(2)
for starts in startss:
start = ''.join(starts)
print('正在转化--图片: ' + start)
sta = './' + '输入----图片/' + start
end = './' + '输出----图片/' + 'HD_20' + start
image(sta=sta,end=end,depths=number)

简单来说,就是利用python的Numpy库,将图像降维转化为数字化的数据,之后对数据进行操作,再利用pillow库将操作好的数据转化为素描效果的图片。
GUI图形界面程序
main.py
import os
from image import mains
from tkinter import *

def exists_mkdir():
if os.path.exists('输出----图片') and os.path.exists('输入----图片'):
pass
else:
os.mkdir('输出----图片')
os.mkdir('输入----图片')

def images():
try:
s1 = e1.get()
a = mains(s1)
c["text"] = "我们的程序运行成功了"
except Exception:
c["text"] = "程序运行出错了,可能是缺少了两个配置文件"

#创建程序运行需要的工作目录
exists_mkdir()

tk = Tk()
# 设置窗口大小和位置
tk.geometry('430x350+80+60')

# 不允许改变窗口大小
tk.resizable(False, False)

## 用来显示Label组件
tk.title('素描图生成器')
w1 = Label(tk,text='作者博客:www.liuchaoblog.live')
w = Label(tk,text='')
w2 = Label(tk,text='欢迎使用:')
w3 = Label(tk,text='步骤一:将需要转化的图片放入 输入----图片 文件夹下')
w4 = Label(tk,text='步骤二:输入 0-100的数值,数值越大,颜色越深。--------标准参数是 10 ')
w5 = Label(tk,text='步骤三:点击确认 运行程序 等待出现提示')
w6 = Label(tk,text='步骤四:到输入----图片 文件夹找到素描图')
w1.grid(row=0,column=0,sticky=W)
w.grid(row=1,column=0,sticky=W)
w2.grid(row=2,column=0,sticky=W)
w3.grid(row=3,column=0,sticky=W)
w4.grid(row=4,column=0,sticky=W)
w5.grid(row=5,column=0,sticky=W)
w6.grid(row=6,column=0,sticky=W)

l = Label(tk,text="输入 0-100的数值")
l.grid(row=8,column=0,sticky=E)

## 用来显示输入框
e1 = Entry(tk)
e1.grid(row=10,column=0,sticky=E)

## 用来显示Button
b = Button(tk,text='确定',command=images)
b.grid(row=12,column=0,sticky=E)

c = Label(tk,text="",background="yellow")
c.grid(row = 15)

# 启动消息主循环
tk.mainloop()

运行效果:

这个程序我用pyinstaller做成exe文件了。
如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 请问水低于0度会结冰吗? 如何防止脱发严重 嘴唇上有黑印用蜜蜡和棉线去除了胡须 软柿子的热量 孕妇可以吃软柿子吗不是西红柿 脆柿子和软柿子的区别 脆柿子好还是软柿子好 软柿子可以多吃吗 “鱼悬洁白振清风”的出处是哪里 用大自然的声音评课好吗? 妇产科博士找超声科工作容易吗 怎能把微信6.2.0版本换回6.1.2版 微信群6.2.4怎么增加人数上限 微信6.2.2如何备份手机通讯录 电脑桌面图标不能放大? 有什么好用的识图软件 识图认人哪个软件最好 手机识图软件什么软件能识别图片位置 小米手机自动锁屏时间怎么修改 小米手机屏幕锁定时间设置教程 能举起100斤算大力吗 中医美容专业是什么 中医美容证有什么用 单声道音频什么意思(开启单声道音频有什么好处) 单声道音频是什么,有什么用处? 户口还未迁移到婆家 娘家户口怎么就没了呢 我结婚没有迁户口,现在娘家也没有怎么办 没领证生的孩子一般会判给谁 没领证生的孩子会判给谁 信用卡卡种有哪些 找一首古风歌曲 男声 低配电脑装w10还是w7流畅 电脑配置低装win7还是win10好 低配电脑适合装WIN7系统还是WIN10系统? ...500s-15isk这个联想笔记本的内存条尺寸是什么型号的有没有知道的... 越快越好.怎样减肥.而且胸部不缩水 请问徐闻县海安长途汽车客运站客服是多少? 过了平台期还会瘦吗 悦耳的意思悦耳的解释 重庆师范大学应用心理学专业的权威性如何? 打印机laserjetm1136mfp怎样设置无线打印 经典电影赏析之1:《精武英雄》 爆米花用的什么玉米 糯玉米哪个好 有机糯玉米的营养价值如何? 四大直辖市换帅原因 四大直辖市换帅为啥 win7系统怎么让图标显示缩略图 如何使电脑里的图片从显示图标变成缩略图? 【】怎么让电脑里的图片显示为【缩略图】好方便查看? 电脑中怎样才能让它始终显示缩略图啊? 电脑照片缩略图怎么显示 如何让电脑桌面和文件夹里的图片直接显示成缩略图 什么是Python,又该怎么学习Python 怎样让电脑默认的图片显示方式为缩略图? 如何自学 Python 怎样把电脑的查看方式默认为 缩略图查看方式 电脑显示缩略图? 如何清除皮床上的彩色笔 win7怎么让只图片显示缩略图 皮床怎样搞卫生 怎样才能让电脑里的图片始终显示的是缩略图? 我家的床是白色的皮的,不知道该怎么清理会更干净。更白。 皮床发霉怎么洗 电脑里的文件浏览的时候 怎么设置自动显示缩略图 皮床上面有发霉的霉菌怎么清洗 如何让电脑里的图片全部显示为缩略图? 初学者学python用什么软件 小米小爱音箱使用步骤 郁闷死了,iPhone11为什么安装下了软件了?提示按两下安装,看着图操控,按右键两下,黑屏了。 小米小爱随身音箱说明书pdf 小米小爱音箱play怎么连接无线网络 苹果11按右边两下付款怎么取消? iPhone 12,ios15.4怎么截长图? 两部iphone怎么转移数据 视频导入Premiere编辑后,导出时如何保持原分辨率? premiere导出的视频比原视屏要模糊,怎么才能和原视屏一样清晰? 我想在premiere中导出640X480的文件,请问如何保证原始画质 手机拍的,用pr剪辑导出画质就低了,究竟pr导出视频的时候怎么设置才能导出和原来手机拍的一样清楚。 微信如何删除聊天记录不能恢复 豆角炒饼丝的制作过程 怎么看自己的wifi有几个人在用 中国联通怎么查看wifi有几个人用? 手机怎样查看wifi几个人用 手机怎么看wifi有几个人在用 怎样查看网络有几个人在用 电脑怎么联网?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com