Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- import matplotlib.pyplot as plt
- import math
- def kontrast(obraz,J):
- obraz[obraz > 1] = 1
- m = obraz.shape[0]
- n = obraz.shape[1]
- j=1/(m*n)
- obraz = (obraz - J) ** 2
- wynik = np.sum(obraz)
- wynik = np.sqrt(wynik * j)
- return wynik
- def jasnosc(obraz):
- obraz[obraz > 1] = 1
- m = obraz.shape[0]
- n = obraz.shape[1]
- j=1/(m*n)
- wynik = j*np.sum(obraz)
- return wynik
- obraz = plt.imread("kierowca.png")
- obraz = obraz[:,:,2]
- wynikJasnosc = jasnosc(obraz)
- print("Jasnosc obrazu wynosi : " + str(wynikJasnosc))
- wynikKontrast = kontrast(obraz,wynikJasnosc)
- print("Kontrast obrazu wynosi : "+str(wynikKontrast))
- X = [i for i in np.arange(0.1,1,0.1)]
- YJplus = []
- YKplus = []
- YJmultiply = []
- YKmultiply = []
- YJpower = []
- YKpower = []
- YJsqrt = []
- YKsqrt = []
- YJlog = []
- YKlog = []
- for x in X:
- YJplus.append(jasnosc(obraz + x))
- YKplus.append(kontrast(obraz+x,YJplus[-1]))
- YJmultiply.append(jasnosc(obraz*x))
- YKmultiply.append(kontrast( obraz*x, YJmultiply[-1]) )
- YJpower.append(jasnosc(obraz ** x))
- YKpower.append(kontrast((obraz ** x), YJpower[-1]))
- if x ==0:
- YJsqrt.append(jasnosc(obraz ** (1/x) ))
- YKsqrt.append(kontrast(obraz ** (1/x), YJsqrt[-1] ))
- YJlog.append(jasnosc((np.log2(obraz)/np.log2(x))))
- YKlog.append(kontrast((np.log2(obraz)/np.log2(x)), YJlog[-1]))
- else:
- YJsqrt.append(jasnosc(obraz ** (1 / x+0.01)))
- YKsqrt.append(kontrast(obraz ** (1 / x+0.01), YJsqrt[-1]))
- YJlog.append(jasnosc((np.log2(obraz) / np.log2(x+0.01))))
- YKlog.append(kontrast((np.log2(obraz) / np.log2(x+0.01)), YJlog[-1]))
- plt.subplot(231)
- plt.plot(X,YJplus,label = "jasność")
- plt.plot(X,YKplus,label = "kontrast")
- plt.title("dodawanie stałej do obrazu")
- plt.legend()
- plt.grid()
- plt.subplot(232)
- plt.plot(X,YJmultiply,label = "jasność")
- plt.plot(X,YKmultiply,label = "kontrast")
- plt.title("mnożenie obrazu przez stałą")
- plt.legend()
- plt.grid()
- plt.subplot(233)
- plt.plot(X,YJpower,label = "jasność")
- plt.plot(X,YKpower,label = "kontrast")
- plt.title("potęgowanie obrazu")
- plt.legend()
- plt.grid()
- plt.subplot(234)
- plt.plot(X,YJsqrt,label = "jasność")
- plt.plot(X,YKsqrt,label = "kontrast")
- plt.title("pierwiastkowanie obrazu")
- plt.legend()
- plt.grid()
- plt.subplot(235)
- plt.plot(X,YJlog,label = "jasność")
- plt.plot(X,YKlog,label = "kontrast")
- plt.title("logarytmowanie obrazu")
- plt.legend()
- plt.grid()
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement