Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- Odrediti predstavu color_mix.bmp slike u HSI
- domenu koristeći sledeću transformaciju nad RGB slikom
- gde su komponente skalirane na [0,1] opseg:
- gde su R , G i B skalirane vrednosti pojedinačnih kanala boja na opseg [0,1] .
- Operaciju transformacije je potrebno implementirati kao funkciju rgb2hsi.
- Prikazati pojedinačne komponente HSI slike.
- '''
- import plotly.express as px
- from skimage import io
- img = io.imread('color_mix.bmp')
- fig = px.imshow(img)
- fig.show()
- import numpy as np
- def rgb2hsi(img):
- img = img/255
- R = img[:,:,0]
- G = img[:,:,1]
- B = img[:,:,2]
- H = np.rad2deg(np.arccos(0.5*(2*R-G-B)/(np.sqrt((R-G)**2+(R-B)*(G-B))+np.finfo('float').eps)))
- H[B>G] = 360 - H[B>G]
- Cmin = np.amin(img, axis=2)
- Cmax = np.amax(img, axis=2)
- H[Cmin==Cmax] = 0
- S = 1 - 3/(R+G+B+np.finfo('float').eps)*Cmin
- S[Cmin==Cmax] = 0
- I = (R+G+B)/3
- return np.stack((H,S,I),axis=2)
- img_hsi = rgb2hsi(img)
- fig = px.imshow(img_hsi[:,:,0], color_continuous_scale='gray')
- fig.show()
- fig = px.imshow(img_hsi[:,:,1], color_continuous_scale='gray')
- fig.show()
- fig = px.imshow(img_hsi[:,:,2], color_continuous_scale='gray')
- fig.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement