Color rotation (hue)

Adam Hughes hughesadam87 at gmail.com
Thu Mar 20 12:45:06 EDT 2014


This would make a nice example IMO, at least an ipython notebook if not 
something on the gallery page.  It's simple, and I've seen other examples 
on stack overflow with people struggling to get the transformations down in 
HSV space.

On Thursday, March 20, 2014 10:48:22 AM UTC-4, Jean-Patrick Pommier wrote:
>
>
> <https://lh3.googleusercontent.com/-XZbiua42-VA/Uyr_pGIEHqI/AAAAAAAABtU/rTheRwAB0p4/s1600/04_mfish_stretch.png>
> The different spectral components can be combined into one rgb image<http://nbviewer.ipython.org/gist/jeanpat/9665267>to yield:
>
>
> Le jeudi 20 mars 2014 09:00:48 UTC+1, Jean-Patrick Pommier a écrit :
>>
>>
>> <https://lh5.googleusercontent.com/-tYhHDFsj2cM/UyqfVvwM_nI/AAAAAAAABtE/wGITFPkdxaE/s1600/mfish.png>
>> Now it's clear for me, thank you for your code!
>>
>> jp
>>
>> Le mercredi 19 mars 2014 10:16:45 UTC+1, Jean-Patrick Pommier a écrit :
>>>
>>> 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/20140320/39728ce8/attachment.html>


More information about the scikit-image mailing list