Advertisement
StevanovicMilan

10.4

Sep 18th, 2021
783
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.21 KB | None | 0 0
  1. '''
  2. Odrediti predstavu color_mix.bmp slike u HSI
  3. domenu koristeći sledeću transformaciju nad RGB slikom
  4. gde su komponente skalirane na  [0,1]  opseg:
  5. gde su  R , G  i  B  skalirane vrednosti pojedinačnih kanala boja na opseg  [0,1] .
  6. Operaciju transformacije je potrebno implementirati kao funkciju rgb2hsi.
  7. Prikazati pojedinačne komponente HSI slike.
  8. '''
  9.  
  10. import plotly.express as px
  11. from skimage import io
  12.  
  13. img = io.imread('color_mix.bmp')
  14. fig = px.imshow(img)
  15. fig.show()
  16.  
  17. import numpy as np
  18.  
  19.  
  20. def rgb2hsi(img):
  21.     img = img/255
  22.  
  23.     R = img[:,:,0]
  24.     G = img[:,:,1]
  25.     B = img[:,:,2]
  26.  
  27.     H = np.rad2deg(np.arccos(0.5*(2*R-G-B)/(np.sqrt((R-G)**2+(R-B)*(G-B))+np.finfo('float').eps)))
  28.     H[B>G] = 360 - H[B>G]
  29.  
  30.     Cmin = np.amin(img, axis=2)
  31.     Cmax = np.amax(img, axis=2)
  32.  
  33.     H[Cmin==Cmax] = 0
  34.  
  35.     S = 1 - 3/(R+G+B+np.finfo('float').eps)*Cmin
  36.     S[Cmin==Cmax] = 0
  37.  
  38.     I = (R+G+B)/3
  39.  
  40.     return np.stack((H,S,I),axis=2)
  41.  
  42. img_hsi = rgb2hsi(img)
  43.  
  44. fig = px.imshow(img_hsi[:,:,0], color_continuous_scale='gray')
  45. fig.show()
  46.  
  47. fig = px.imshow(img_hsi[:,:,1], color_continuous_scale='gray')
  48. fig.show()
  49.  
  50. fig = px.imshow(img_hsi[:,:,2], color_continuous_scale='gray')
  51. fig.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement