Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Kuvan lukeminen, näyttäminen, värikorjaus
- # scikit-imagen ja numpyn avulla
- # edellyttää että asennettuina on kirjastot
- # numpy, matplotlib, scipy, Pillow (PIL), scikit-image
- # nämä ovat automaattisesti mukana, jos käyttää Anaconda-pythonia
- # Juhani Kaukoranta 28.10.2018
- import math
- import numpy as np
- import skimage
- from skimage.viewer import ImageViewer
- #
- # luetaan kuva kotihakemistosta numpy-matriisiksi
- kuva = skimage.io.imread('Varsova.jpg')
- ImageViewer(kuva).show()
- # katsottiin varmuuden vuoksi kuvan tyyppi
- # kuvan värikanavat voivat olla RGB tai RGBA
- print("kuvan pikselikoko ja värikanavien määrä = ",kuva.shape)
- # harmaan pikselin väriarvot skaalattu 0..1 välille
- r, g , b = 214./255, 200./255, 199./255
- print("r= ",r," g= ",g," b= ",b)
- # punaisen ja sinisen gammakorjaukset
- gamr = math.log(g)/math.log(r)
- gamb = math.log(g)/math.log(b)
- print("gamr = ",gamr," gamb = ",gamb)
- #
- # R korjataan, G ennallaan, B korjataan, A (alpha) ennallaan
- color_corrector = [gamr,1,gamb]
- # kuvan väriarvot liukuluvuiksi, sitten gammakorjaukset
- # siniset ja punaiset väriarvot korotetaan gamr,gamb-potensseihin
- corrected_float_kuva = (kuva/255)**color_corrector
- # muunnetaan väriarvot liukuluvuista kokonaisluvuksi 0..255
- # näytetään korjattu kuva
- ImageViewer(np.uint8(255*corrected_float_kuva)).show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement