python中scale=50_如何在python中用tkinter slider(scale)值更新图像?

我是python的初学者。我只想创建一个简单的GUI来实现基本的数字图像处理算法。

我想用tkinter滑块调整图像的亮度。但这是行不通的,我是无知的,因为我只是初学者。我期望scale widget回调做一些亮度调整工作,但是由于太多的原因,没有调用回调。在

这是我的代码:import Tkinter as tk

import Image

import ImageTk

import numpy as np

import tkFileDialog

class DIP(tk.Frame):

def __init__(self, parent):

tk.Frame.__init__(self, parent)

self.parent = parent

self.initUI()

def initUI(self):

self.parent.title("DIP Algorithms- Simple Photo Editor")

self.pack(fill = tk.BOTH, expand = 1)

menubar = tk.Menu(self.parent)

self.parent.config(menu = menubar)

self.label1 = tk.Label(self, border = 25)

self.label2 = tk.Label(self, border = 25)

self.label1.grid(row = 1, column = 1)

self.label2.grid(row = 1, column = 2)

# File Menu

fileMenu = tk.Menu(menubar)

menubar.add_cascade(label = "File", menu = fileMenu)

# Menu Item for Open Image

fileMenu.add_command(label = "Open", command = self.onOpen)

# Basic menu

basicMenu = tk.Menu(menubar)

menubar.add_cascade(label = "Basic", menu = basicMenu)

# Menu Item for image negative

basicMenu.add_command(label = "Negative", command = self.onNeg)

#menu for brightness

basicMenu.add_command(label = "Brightness", command = self.onBrghtness)

def onBrghtness(self):

#Image Brightness Adjustment Menu callback

brgTk=tk.Tk()

self.brgSc = tk.Scale( brgTk, from_=-50, to=50, orient=tk.HORIZONTAL, command=self.adjBright, length=200 ,width=10, sliderlength=15)

self.brgSc.pack(anchor=tk.CENTER)

def adjBright(self):

print self.brgSc #***here how can i get slider value, this callback is not being invoked***???

def onNeg(self):

#Image Negative Menu callback

self.I2 = 255-self.I;

self.im = Image.fromarray(np.uint8(self.I2))

photo2 = ImageTk.PhotoImage(self.im)

self.label2.configure(image=photo2)

self.label2.image = photo2 # keep a reference!

def setImage(self):

self.img = Image.open(self.fn)

self.I = np.asarray(self.img)

l, h = self.img.size

text = str(2*l+100)+"x"+str(h+50)+"+0+0"

self.parent.geometry(text)

photo = ImageTk.PhotoImage(self.img)

self.label1.configure(image = photo)

self.label1.image = photo # keep a reference!

def onOpen(self):

#Open Callback

ftypes = [('Image Files', '*.tif *.jpg *.png')]

dlg = tkFileDialog.Open(self, filetypes = ftypes)

filename = dlg.show()

self.fn = filename

#print self.fn #prints filename with path here

self.setImage()

#def onError(self):

#box.showerror("Error", "Could not open file")

def main():

root = tk.Tk()

DIP(root)

root.geometry("320x240")

root.mainloop()

if __name__ == '__main__':

main()

在我提到问题的代码中,回调失败,因为它显示如下内容:

^{pr2}$

请帮忙,我知道这可能是一个愚蠢的问题,但我只是初学者,我希望随着时间的推移,我会对PYTHON有更深的理解。。。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值