GUI界面+简单图像处理(RGB图像转素描图)
距上次更新已经隔了一段时间,最近在忙别的学习所以更新较慢,但是我会坚持更新下去,人嘛总得有一些事慢慢坚持去做<哈哈哈 开始干活!!!>
##导入所需要的库(为了加强学习,通过走弯路学习更多的库使用)
import tkinter
import tkinter.messagebox as msgbox #创建消息盒子
from PIL import Image # 导入图像处理函数库
import matplotlib.pyplot as plt #显示处理图像
import os
import cv2
###定义点击按钮功能函数
def buttonOK_click():
tem = entryname.get()
if (len(tem)!=0)and(os.path.exists(tem)):
View(Pic_process(tem)) #图像处理
else:
msgbox.showinfo("提示", "转换失败")
###定义重置按钮功能函数
def buttonRE_click():
varname.set("") # 重置为空
###定义图像处理函数
def Pic_process(SRC):
img_rgb = cv2.imread(SRC) # 获取RGB图像
img_gray = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2GRAY) # 获取灰度图像
# 利用高斯滤波函数进行滤波虚化,ksize为卷积核大小,必须为奇数
img_blur = cv2.GaussianBlur(img_gray, ksize=(11, 11), sigmaX=0, sigmaY=0)
# 将灰度图和高斯滤波图进行叠加,获得素描图
img_blend = cv2.divide(img_gray, img_blur, scale=255)
cv2.imwrite("Sketch.jpg", img_blend)
return os.getcwd() + "\Sketch.jpg"
###定义显示素描图像函数
def View(x):
img_open = Image.open(x)
plt.figure("Sketch")
plt.imshow(img_open)
plt.axis('off')
plt.show()
###主函数
def main():
global entryname,varname
#初始化设置
window = tkinter.Tk() #创建一个窗体实例
window.title('First_window') #窗口名称
window.geometry('600x200+400+200') #设置窗口的大小以及屏幕位置 宽x高+水平方向位置+垂直方向位置
#创建用户名标签
lbname = tkinter.Label(window,text="原图地址(禁止中文路径)") #创建标签
lbname.grid(row=0,column=0,ipadx=20,ipady=60) #设置标签布局
#创建当行输入
#创建控制控件的变量 从TK库中创建string类型的变量对象,将变量与对象进行绑定然后控制
varname = tkinter.StringVar()
entryname = tkinter.Entry(window,width=50,textvariable=varname) #textvariable为文本变量
entryname.grid(row=0,column=1,columnspan=2)
#创建开始按键
buttonOK = tkinter.Button(window,text="开始",width=5,command=buttonOK_click)
buttonOK.grid(row=2,column=1)
#创建重置按钮
buttonRE = tkinter.Button(window,text="重置",width=5,command=buttonRE_click)
buttonRE.grid(row=2,column=2) #设置布局
window.mainloop() # 进入消息循环才能显示窗口
###函数入口
if __name__ == '__main__':
main()
本次的代码比较简单,逻辑也不是很复杂,主要是在运用各个库函数时有一些控件使用上需要注意,编程语言的学习我认为最主要的还是在于运用,与其去纠结语法规则,不如在实际的操作中去学习强化,这样映像也会更加深刻,另外有很多的特殊情况也只有在实际的应用中才会深有体会。由于现在这个快速发展的时代,技术的更替远远是大于书本知识的更迭,所以一定要在打牢基础的同时加强加强加强实操应用,python语言的复杂度广度运用方面还有许多需要学习,在实际的很多情况中都是一大助力,加油学习!
“希望我们各自都可以朝着不同的方向越走越远”——哈哈哈