#創建GUI視窗打開影像,并顯示在視窗中
from PIL import Image,ImageTk
import matplotlib.pyplot as plt
import tkinter as tk
from tkinter import filedialog
########################################################
#創建視窗
window=tk.Tk()
window.title('主視窗')
window.geometry('1000x600')
#創建畫布,匯入圖片
canvas=tk.Canvas(window,height=600,width=1000)
canvas.pack()
x=None
y=None
def choose1():
global x
x=filedialog.askopenfilename(title=u'選擇檔案',
initialdir="D:\\照片儲存器\\")
def choose2():
global y
y=filedialog.askopenfilename(title=u'選擇檔案',
initialdir="D:\\照片儲存器\\")[/color]
b5=tk.Button (window,width='10',height='2',text='請選擇圖一',command=choose1)
b5.place(x=250,y=150,anchor='center')
b6=tk.Button (window,width='10',height='2',text='請選擇圖二',command=choose2)
b6.place(x=750,y=150,anchor='center')
class ImageObject:
def __init__(self, path=""):
self.path = path
try:
self.data=https://bbs.csdn.net/topics/np.array(Image.open(path))
except:
self.data=https://bbs.csdn.net/topics/None
def __add__(self, other):
image=ImageObject()
try:
image.data=https://bbs.csdn.net/topics/np.mod(self.data+other.data,255)
except:
image.data=https://bbs.csdn.net/topics/self.data
return image
def __sub__(self, other):
image=ImageObject()
try:
image.data=https://bbs.csdn.net/topics/np.mod(self.data-other.data,255)
except:
image.data=https://bbs.csdn.net/topics/self.data
return image
def __mul__(self,factor):
image=ImageObject()
try:
image.data=https://bbs.csdn.net/topics/np.mod(self.data*factor,255)
except:
image.data=https://bbs.csdn.net/topics/self.data
return image
def __truediv__(self, factor):
image=ImageObject()
try:
image.data=https://bbs.csdn.net/topics/np.mod(self.data//factor,255)
except:
image.data=https://bbs.csdn.net/topics/self.data
return image
def saveimage(self,path):
try:
im=Image.fromarray(self.data)
im.save(path)
return True
except:
return False
print(x)
print(y)
a=ImageObject(x)
b=ImageObject(y)
(a+b).saveimage("D:\\照片管理器\\result_add.png")
(a-b).saveimage("D:\\照片管理器\\result_sub.png")
(a*2).saveimage("D:\\照片管理器\\result_mul.png")
(a/2).saveimage("D:\\照片管理器\\result_div.png")
uj5u.com熱心網友回復:
b5=tk.Button (window,width='10',height='2',text='請選擇圖一',command=choose1)----------
command=choose1表示點擊按鈕時執行的命令。
也就是說,只有你在點擊操作時,才會觸發choose1函式執行,那么這個時候才會改變全域變數x的值!
如果你沒有進行點擊操作,那當然看不到改變全域變數x的值!
你點擊后再去print(x)看看會不會改變!
============
choose2和y的關系,同理!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/57283.html
下一篇:組合優化與深度學習求助
