Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- Učitati sliku lena_color.png i prevesti je u HSV sistem boja (engl. Hue-Saturation-Value).
- 1. Povećati vrednost H komponente za 0.33, tri puta za redom. Nakon svake promene prikazati sliku.
- 2. Prikazati slike nastale modifikacijom S komponente za faktor u intervalu od -0.6 do 0.6 sa korakom 0.2.
- 3. Ekvalizovati histogram V komponente. Prikazati sliku nakon promene.
- '''
- import plotly.express as px
- from skimage import io
- img = io.imread('lena_color.png')
- fig = px.imshow(img)
- fig.show()
- from skimage import color
- img_hsv = color.rgb2hsv(img)
- fig = px.imshow(img_hsv[:,:,0], color_continuous_scale='gray')
- fig.show()
- fig = px.imshow(img_hsv[:,:,1], color_continuous_scale='gray')
- fig.show()
- fig = px.imshow(img_hsv[:,:,2], color_continuous_scale='gray')
- fig.show()
- img_rgb = color.hsv2rgb(img_hsv)
- fig = px.imshow(img_rgb)
- fig.show()
- '''
- Povećati vrednost H komponente za 1/3 , tri puta za redom.
- Nakon svake promene prikazati sliku.
- '''
- import plotly.graph_objects as go
- import numpy as np
- # Create figure
- fig = go.Figure()
- increment = 1/3
- # Add traces, one for each slider step
- for i in range(3):
- img_hsv[:,:,0] = (img_hsv[:,:,0] + increment) % 1
- out = color.hsv2rgb(img_hsv)
- # Izlazna slika je 'float' slika i radi prikaza u colab-u pretvoricemo u uint8 slike
- out = (255*out).astype('uint8')
- fig.add_trace(go.Image(z=out, name="faktor = "+str((i+1)*increment), visible=false))
- # Make the 1st visible
- active_idx = 0
- fig.data[active_idx].visible = True
- # Create and add slider
- steps = []
- for i in range(len(fig.data)):
- step = dict(method="update",
- args=[{"visible": [False] * len(fig.data)},
- {"title": "Faktor : " + str((i+1)*increment)}])
- step["args"][0]["visible"][i] = True # Toggle i'th trace to "visible"
- steps.append(step)
- sliders = [dict(active=active_idx, steps=steps)]
- fig.update_layout(sliders = sliders)
- fig.show()
- # Create figure
- fig = go.Figure()
- s_factor = [-0.6, -0.4, -0.2, 0, 0.2, 0.4, 0.6]
- # Add traces, one for each slider step
- for i in s_factor:
- img_hsv = color.rgb2hsv(img)
- img_hsv[:, :, 1] = np.maximum(np.minimum(img_hsv[:, :, 1] + i, 1), 0)
- out = color.hsv2rgb(img_hsv)
- # izlazna slika je 'float' slika i radi prikaza u colab-u pretvoricemo u uint8 slike
- out = (255 * out).astype('uint8')
- fig.add_trace(go.Image(z=out, name="faktor = " + str(i), visible=False))
- # Make the center visible
- active_idx = 3
- fig.data[active_idx].visible = True
- # Create and add slider
- steps = []
- for i in range(len(fig.data)):
- step = dict(method="update",
- args=[{"visible": [False] * len(fig.data)},
- {"title": "Faktor : " + str(s_factor[i])}])
- step["args"][0]["visible"][i] = True # Toggle i'th trace to "visible"
- steps.append(step)
- sliders = [dict(active=active_idx, steps=steps)]
- fig.update_layout(sliders=sliders)
- fig.show()
- from skimage import exposure
- img_hsv = color.rgb2hsv(img)
- img_hsv[:,:,2] = exposure.equalize_hist(img_hsv[:,:,2])
- out = color.hsv2rgb(img_hsv)
- fig = px.imshow(out)
- fig.show()
Advertisement
Add Comment
Please, Sign In to add comment