代码拉取完成,页面将自动刷新
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import cv2
import PySimpleGUI as sg
# 界面风格
sg.theme('GreenTan')
# 参数输入控件,包括打开图像按钮、阈值调节滚动条、Sobel算子选择列表框
controlLayout = [[sg.Text('打开图片', size=(10, 1)), sg.InputText(size=(40, 1),key='-FILENAME-',change_submits=True),
sg.FileBrowse(button_text="浏览")],
[sg.Text('ksize', size=(10, 1)),sg.Combo(values=['3','5','7','9','11'],
key='-KSIZE-',default_value=3,size=(10,1),change_submits=True)]]
# 图像显示控件
image_src_column = [[sg.Frame("原图",[[sg.Image(key='-IMGSRC-',size=(400,400))]],element_justification='center')]]
image_dst_column = [[sg.Frame("结果",[[sg.Image(key='-IMGDST-',size=(400,400))]],element_justification='center')]]
# 界面布局
layout = [[sg.Frame('参数调节', controlLayout, title_color='blue')],
[sg.Column(image_src_column),sg.VSeperator(),sg.Column(image_dst_column)]]
window = sg.Window('方框滤波演示', layout, font=("Helvetica", 15),element_justification="center" )
# 全局变量
imgSrc = None
#事件循环
while True:
# 读取界面操作
event, values = window.read()
# 检测是否需要退出
if event == sg.WIN_CLOSED:
break
# 控件输入
ksize = int(values['-KSIZE-'])
# 载入图片,并缩放
if values["-FILENAME-"]:
imgSrc = cv2.imread(values['-FILENAME-'])
imgSrc = cv2.resize(imgSrc, window["-IMGSRC-"].get_size())
imgbytes = cv2.imencode(".png", imgSrc)[1].tobytes()
window["-IMGSRC-"].update(data=imgbytes)
# 若已经载入图片,则进行Canny边缘检测
if imgSrc is not None:
imgDst = cv2.boxFilter(imgSrc,-1,(ksize,ksize),0)
imgbytes = cv2.imencode(".png", imgDst)[1].tobytes()
window["-IMGDST-"].update(data=imgbytes)
window.close()
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。