Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # -*- coding: utf-8 -*-
- """
- Created on Mon Mar 30 14:40:40 2020
- @author: koray
- """
- import matplotlib.pyplot as plt
- from tkinter import *
- from PIL import Image
- from PIL import ImageTk
- from tkinter import filedialog
- import cv2
- import numpy as np
- from skimage.util import random_noise
- import random
- import pandas as pd
- from skimage.restoration import estimate_sigma
- from skimage.measure import compare_ssim, compare_mse, compare_psnr
- from scipy.stats import pearsonr
- filename = "pies.jpg"
- org_obraz = cv2.imread(filename,cv2.IMREAD_GRAYSCALE)
- org_obraz_im_arr = np.asarray(org_obraz)
- counter = 3
- data_frame = pd.DataFrame(columns=["mwynik","sim","mse","psnr","szum"])
- def generate_img():
- szum_img = random_noise(org_obraz_im_arr, mode="gaussian", var=random.uniform(0.02, 0.08)**2)
- szum_img = (255*szum_img).astype(np.uint8)
- return szum_img
- def clicked(panel, mwynik):
- global counter
- global data_frame
- print(counter)
- if counter == 0:
- counter -= 1
- data_frame["mwynik"] = data_frame["mwynik"].shift(-1)
- data_frame = data_frame.iloc[:-1]
- data_frame.to_csv("dane.csv", mode="a", header=False)
- toplevel = Toplevel()
- label1 = Label(toplevel, text="Dziekuje", height=0, width=100)
- label1.pack()
- butt = Button(toplevel, text="zamknij", command=root.destroy)
- butt.pack()
- else:
- counter -= 1
- img2 = generate_img()
- # #szum lvl
- szum= estimate_sigma(img2, multichannel=True, average_sigmas=True)
- # #sim
- (sim, diff) = compare_ssim(org_obraz_im_arr, img2, full=True)
- # #mse
- mse = compare_mse(org_obraz_im_arr, img2)
- psnr = compare_psnr(org_obraz_im_arr, img2)
- data_frame = data_frame.append(pd.DataFrame([[mwynik, sim, mse, psnr, szum]],
- columns=["mwynik","sim","mse","psnr","szum"]), ignore_index=True)
- img2 = Image.fromarray(img2)
- img2 = ImageTk.PhotoImage(img2)
- panel.configure(image=img2)
- panel.image = img2
- root = Tk()
- image = Image.fromarray(org_obraz_im_arr)
- image = ImageTk.PhotoImage(image)
- panel = Label(root, image = image)
- label1 = Label(root, text="Ocen obrazek: 1-5 zle, bardzo dobrze", height=0, width=100)
- v = DoubleVar()
- scale = Scale(root, variable = v, from_ = 1, to = 5, orient = HORIZONTAL)
- next_button = Button(root, text="Dalej", command=lambda: clicked(panel, scale.get()))
- next_button.pack(side = "bottom", fill = "both", expand = "yes")
- scale.pack(side = "bottom", fill = "both", expand = "yes")
- label1.pack(side = "bottom", fill = "both", expand = "yes")
- panel.pack(side = "bottom", fill = "both", expand = "yes")
- root.mainloop()
- data = pd.read_csv("dane.csv", header=None)
- data.columns = ["index", "mwynik","sim","mse","psnr","szum"]
- m, b = np.polyfit(data["mwynik"], data["sim"], 1)
- plt.plot(data["mwynik"], data["sim"], "o", data["mwynik"], m*data["mwynik"] + b)
- m, b = np.polyfit(data["mwynik"], data["mse"], 1)
- plt.plot(data["mwynik"], data["mse"], "o", data["mwynik"], m*data["mwynik"] + b)
- m, b = np.polyfit(data["mwynik"], data["psnr"], 1)
- plt.plot(data["mwynik"], data["psnr"], "o", data["mwynik"], m*data["mwynik"] + b)
- m, b = np.polyfit(data["mwynik"], data["szum"], 1)
- plt.plot(data["mwynik"], data["szum"], "o", data["mwynik"], m*data["mwynik"] + b)
- data.plot(x="mwynik")
- plt.matshow(data.corr())
- plt.xticks(range(len(data.columns)), data.columns)
- plt.yticks(range(len(data.columns)), data.columns)
- plt.colorbar()
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement