Color rotation (hue)

Jean-Patrick Pommier jeanpatrick.pommier at gmail.com
Wed Mar 19 05:16:45 EDT 2014


Hi,
I 'd like to modify continuously a pure red image to get an orange, yellow, 
green, light blue, blue, purple image.
The idea is to convert a rgb image, to convert it into hsv color space, to 
modify the hue value then to back convert into rgb color space.
The problem is that only green and blue can be obtained but no intermediate 
color:

<https://lh4.googleusercontent.com/-s_Acsx0EmRY/UylefCuSGnI/AAAAAAAABsQ/T7pAI2f-D6w/s1600/color_rotation.png>

According to adobe<http://dba.med.sc.edu/price/irf/Adobe_tg/models/hsb.html>, 
adding a hue equal to 36 should yield a yellow image.

*Here's the code:*

from skimage import io
from skimage import color
from scipy import ndimage as nd
import numpy as np
from matplotlib import pyplot as plt
import os

cy55 = io.imread('/home/jeanpat/MFISH/PSI/P07/01/Cy5/P070109C.tif')

zero = np.zeros(cy55.shape,dtype=np.uint8)
rgb0 = np.dstack([cy55, zero,zero])

hue_rotations = [18, 36,72,90,108]
images = {}
images[0] = rgb0
hsv0 = color.rgb2hsv(rgb0)
for hue in hue_rotations:
    hsv = np.copy(hsv0)
    hsv[:,:,0] = hsv[:,:,0]+ hue
    rgb = color.hsv2rgb(hsv)
    images[hue] = rgb

Any greyscaled image should be ok but the image used here is:

<https://lh5.googleusercontent.com/-whwEGZWWhIE/UylgLDhf0VI/AAAAAAAABsc/02kl9UCvkAo/s1600/P070109C.tif>


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/scikit-image/attachments/20140319/fbb5b55a/attachment.html>


More information about the scikit-image mailing list