失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > python 使用tkinter制作界面 OpenCV基础制作的交互式图片处理

python 使用tkinter制作界面 OpenCV基础制作的交互式图片处理

时间:2020-08-18 01:21:30

相关推荐

python 使用tkinter制作界面 OpenCV基础制作的交互式图片处理

import cv2

import numpy as np

#灰度图转换

def tra():

from PIL import Image

grayimg = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

cv2.imwrite("grayimg.jpg",grayimg)

img_tra_0 = Image.open('grayimg.jpg')

img_tra_0.show()

#选择限定角度旋转

def rot():

from PIL import Image

w = t_rot.get()

w = int(w)

(img_h,img_w) = img.shape[:2]

px,py = img_h/2,img_w/2

M = cv2.getRotationMatrix2D((int(px),int(py)),w,1)

img_rot = cv2.warpAffine(img,M,(int(px),int(py)))

cv2.imwrite("img_rot.jpg",img_rot)

img_rot_0 = Image.open('img_rot.jpg')

img_rot_0.show()

#镜像图像

def mirhor():

from PIL import Image

img_mirhor=cv2.flip(img,1)

cv2.imwrite('img_mirhor.jpg',img_mirhor)

img_mirhor_0 = Image.open('img_mirhor.jpg')

img_mirhor_0.show()

#去椒盐化(中值滤波)

def median():

from PIL import Image

median = cv2.medianBlur(img, 11)

cv2.imwrite("median.jpg", median)

img_median_0 = Image.open('median.jpg')

img_median_0.show()

#模糊化

def dim():

from PIL import Image

dim = cv2.blur(img,(9,9))

cv2.imwrite("dim.jpg",dim)

img_dim = Image.open('dim.jpg')

img_dim.show()

#漫画化

def threshold():

from PIL import Image

thresh = cv2.adaptiveThreshold(cv2.cvtColor(img,cv2.COLOR_BGR2GRAY), 255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY,9, 3)

cv2.imwrite("thresh.jpg", thresh)

img_thresh = Image.open('thresh.jpg')

img_thresh.show()

#图像变亮

def sums()

from PIL import Image

sums = cv2.add(img,50)

cv2.imwrite("sums.jpg",sums)

img_sums = Image.open('sums.jpg')

img_sums.show()

#图像变暗

def sub():

from PIL import Image

sub = cv2.subtract(img,50)

cv2.imwrite("sub.jpg", sub)

img_sub = Image.open('sub.jpg')

img_sub.show()

#读取图片

def read():

from PIL import Image

name = t_main.get()

global img

img = cv2.imread(name)

t_main.delete(0, END)

txt.insert(END,img)

img0 = Image.open(name)

img0.show()

tk1()

from tkinter import *

from tkinter.simpledialog import *

def tk1():

from PIL import Image

tk1 = Toplevel(root)

tk1.title('图像处理器')

tk1.geometry('300x300')

b_tra = Button(tk1,text='转换为灰度图',command=tra)

b_tra.place(x=100,y=0)

b_rot0 = Button(tk1,text='选择限定角度旋转',command=tk2)

b_rot0.place(x=100,y=30)

b_mirhor = Button(tk1,text='镜像图像',command=mirhor)

b_mirhor.place(x=100,y=60)

b_median = Button(tk1,text='去椒盐化',command=median)

b_median.place(x=100,y=90)

b_dim = Button(tk1,text='模糊化',command=dim)

b_dim.place(x=100,y=120)

b_thresh = Button(tk1,text='漫画化',command=threshold)

b_thresh.place(x=100,y=150)

b_sums = Button(tk1,text='图片变亮',command=sums)

b_sums.place(x=100,y=180)

b_sub = Button(tk1,text='图片变暗',command=sub)

b_sub.place(x=100,y=210)

root.mainloop()

def tk2():

from PIL import Image

tk2 = Toplevel(root)

tk2.title('旋转角')

tk2.geometry('300x300')

lb_rot = Label(tk2,text='请输入图片的旋转角度:')

lb_rot.place(x=20,y=100)

global t_rot

t_rot = Entry(tk2)

t_rot.delete(0, END)

t_rot.place(x=130,y=100)

b_rot = Button(tk2,text='开始旋转',command=rot)

b_rot.place(x=120,y=130)

#主界面

from PIL import Image

root = Tk()

root.title('图像处理器')

root.geometry('300x300')

lb_main = Label(root,text='请输入图片名字:')

lb_main.place(x=0,y=0)

t_main = Entry(root)

t_main.place(x=100,y=0)

b_main = Button(root,text='开始',command=read)

b_main.place(x=120,y=50)

txt = Text(root)

txt.place(rely=0.6, relheight=0.4)

root.mainloop()

如果觉得《python 使用tkinter制作界面 OpenCV基础制作的交互式图片处理》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。