GUI界面+简单图像处理(RGB图像转素描图)

    科技2022-07-11  100

    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语言的复杂度广度运用方面还有许多需要学习,在实际的很多情况中都是一大助力,加油学习!

    “希望我们各自都可以朝着不同的方向越走越远”——哈哈哈

    Processed: 0.051, SQL: 8