Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Valokuvan punaisen ja sinisen gamma-värikorjaus
- # Juhani Kaukoranta 30.10.2018
- #
- import numpy as np
- import matplotlib.pyplot as plt
- import matplotlib.image as mpimg
- #
- # luetaan kuva, kuvan väriarvot ovat liukulukuja väliltä 0 - 1
- kuva = mpimg.imread('Screenshot.png')
- # katsotaan varmistukseksi kuvan pikselimitat ja värikanavien määrä
- print("kuvan tyyppi = ",kuva.shape)
- print("kuvassa 3 väriarvoa R,G,B ja läpinäkyvyyskanava A")
- # Tehdään punaisen ja sinisen gamma-värikorjaus harmaan pikselin avulla
- # etukäteen katsoitun harmaan pikselin väriarvot välilla 0 - 255 olivat:
- # r, g, b = 208, 184, 146
- # laskussa käytään väriarvoja välillä liukuluvut 0 - 1,joten jaetaan 255 :
- r, g, b = 208/255, 184/255, 146/255
- # tehdään punagammakorjaus gamr ja sinigammakorjaus gamb,
- # joiden avulla r,b arvot saadaan potenssiinkorotuksella
- # yhtä suuriksi kuin vihreä g
- gamr = np.log(g)/np.log(r)
- gamb = np.log(g)/np.log(b)
- print("gammakorjaukset gamr = ",gamr," gamb = ",gamb)
- # 4-värikanavaa R,G,B,A joista A on läpinäkyvyys
- # korjataan punainen R ja sininen B, vihreä G ja alpha A ennallaan
- color_corrector = [gamr,1,gamb,1]
- # siniset ja punaiset väriarvot korotetaan gamr,gamb-potensseihin
- # korotus numpyn tyyliin element wise
- corrected_kuva = kuva**color_corrector
- # näytetään korjattu kuva
- plt.imshow(corrected_kuva)
- plt.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement