Advertisement
jukaukor

gammakorjaus_matplotlib_numpy.py

Oct 30th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.37 KB | None | 0 0
  1. # Valokuvan punaisen ja sinisen gamma-värikorjaus
  2. # Juhani Kaukoranta 30.10.2018
  3. #
  4. import numpy as np
  5. import matplotlib.pyplot as plt
  6. import matplotlib.image as mpimg
  7. #
  8. # luetaan kuva, kuvan väriarvot ovat liukulukuja väliltä 0 - 1
  9. kuva = mpimg.imread('Screenshot.png')
  10. # katsotaan varmistukseksi kuvan pikselimitat ja värikanavien määrä
  11. print("kuvan tyyppi = ",kuva.shape)
  12. print("kuvassa 3 väriarvoa R,G,B ja läpinäkyvyyskanava A")
  13. # Tehdään punaisen ja sinisen gamma-värikorjaus harmaan pikselin avulla
  14. # etukäteen katsoitun harmaan pikselin väriarvot välilla 0 - 255 olivat:
  15. # r, g, b = 208, 184, 146
  16. # laskussa käytään väriarvoja välillä liukuluvut 0 - 1,joten jaetaan 255 :
  17.  
  18. r, g, b = 208/255, 184/255, 146/255
  19.  
  20. # tehdään punagammakorjaus gamr ja sinigammakorjaus gamb,
  21. # joiden avulla r,b arvot saadaan potenssiinkorotuksella
  22. # yhtä suuriksi kuin vihreä g
  23. gamr = np.log(g)/np.log(r)
  24. gamb = np.log(g)/np.log(b)
  25. print("gammakorjaukset gamr = ",gamr," gamb = ",gamb)
  26.  
  27. # 4-värikanavaa R,G,B,A joista A on läpinäkyvyys
  28. # korjataan punainen R ja sininen B, vihreä G ja alpha A ennallaan
  29.  
  30. color_corrector = [gamr,1,gamb,1]
  31.  
  32. # siniset ja punaiset väriarvot korotetaan gamr,gamb-potensseihin
  33. # korotus numpyn tyyliin element wise
  34.  
  35. corrected_kuva = kuva**color_corrector
  36.  
  37. # näytetään korjattu kuva
  38.  
  39. plt.imshow(corrected_kuva)
  40. plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement