This stems from a previous discussion I started, please see thread below.

With reference to this notebook:
http://nbviewer.ipython.org/urls/dl.dropbox.com/s/2pfhla9rn66lsbv/surface_shading.ipynb/%3Fdl%3D0
I originally thought there was an issue with the implementation of the
blending of RGB and intensity images in cells 9 to 11 using
color.rgb_to_hsv and  color.hsv_to_rgb, which modified the colors in the
original colormap.
Thanks to a tip from a friend, I realized this only happens with cubehelix
only, and not with gist_earth and afmhot, as seen in cells 12 and 13.
Furthermore, this does not happen to the cubehelix when converting it to
hsv and back to rgb, as seen in cell 14, so there must be something odd
when converting cubehelix to hsv, changing the value layer, and
reconverting to rgb.
Should this be recorded as an issue on github?

Thanks
Matteo

On Fri, May 22, 2015 3:33 pm, Matteo Niccoli wrote:
> Joe, Eric
>
>
> Thanks to both for your further comments.
> I made a new notebook, this time using open source data so it can be
> downloaded and followed step by step. The html version in nbviewer is here:
>
> http://nbviewer.ipython.org/urls/dl.dropbox.com/s/2pfhla9rn66lsbv/surface
> _shading.ipynb/%3Fdl%3D0
> Data is here:
> https://www.dropbox.com/s/p87bojlnmad9p9j/Penobscot_HorB.txt?dl=0
> The first method suggested by titusjan on stackoverflow is essentially the
>  same as the matplotlib.colors blend_soft_ligh suggested by Joe as it
> uses the  pegtop algorithm. It works nicely with the data.
>
> The second method suggested by titusjan replaces value in hsv space with
> intensity as suggested. Eric you will notce I did include  the line
> img_array = plt.get_cmap('cubehelix')(data_n) and yet the colormapping is
>  not working.
>
> I am very keen to sort out if this is a bug in the software or a problem
> in my code, and if there is a way to make it work. The reason is that this
>  method would allow blending three pieces of information, to create a
> figure like the top one in here:
> https://books.google.ca/books?id=dP2iACuzq34C&q=figure+20#v=snippet&q=a%2
> 0time%20slice%20through%20a%20survey%20acquired%20over%20the%20Central%20
> Basin%20Platform%2C%20Texas%2C%20U.S.A.%2C%20using%20a%203D&f=false
> Any further insight would be really appreciated.
>
>
> Matteo
>
>
> On Fri, May 22, 2015 8:28 am, Joe Kington wrote:
>
>> I think you're asking how to blend a custom intensity image with an rgb
>>  image. (I'm traveling and just have my phone, so you'll have to excuse
>> my lack of examples.)
>>
>> There are several ways to do this. Basically, it's analogous to "blend
>> modes" in Photoshop etc.
>>
>> Have a look at the matplotlib.colors.LightSource.blend_overlay and
>> blend_soft_light functions in the current github head. (And also
>> http://matplotlib.org/devdocs/examples/specialty_plots/topographic_hill
>> sh ading.html )
>>
>>
>> If you're working with 1.4.x, though, you won't have those functions.
>>
>>
>>
>> However, the math is very simple. Have a look at the code in those
>> functions in the github head. It's basically a one liner.
>>
>> You'll need both the 4-band rgba image and the 1 band
>> intensity/hillshade image to be floating point arrays scaled from 0-1.
>> However, this is the
>> default in matplotlib.
>>
>> How that helps a bit, and sorry again for the lack of examples!
>> Joe
>> OK, I understand.
>>
>>
>>
>>
>> Could you suggest a way to reduce that 3D array to a 2D array and plot
>> it with a specific colormap, while preserving the shading?
>>
>> I did something similar in Matlab
>>
>>
>>
>> https://mycarta.wordpress.com/2012/04/05/visualization-tips-for-geoscie
>> nt ists-matlab-part-ii/
>>
>> But it took using some custom functions and a ton of asking and
>> tinkering, and I'm not quite at that level with matplotlib, so any
>> suggestion would be appreciated
>>
>> Thanks,
>> Matteo
>>
>>
>>
>> On Thu, May 21, 2015 4:10 pm, Eric Firing wrote:
>>
>>
>>
>>>
>>> Colormapping occurs only when you give imshow a 2-D array of numbers
>>> to be mapped; when you feed it a 3-D array of RGB values, it simply
>>> shows those colors.  For colormapping to occur, it must be done on a
>>> 2-D
>>> array as a step leading up to the generation of your img_array.
>>>
>>> Eric
>>>
>>>
>>
>>> On 2015/05/21 5:50 AM, Matteo Niccoli wrote:
>>>
>>>
>>>
>>>> I posted a question on stackoverflow about creating with making my
>>>> own shading effect (I want to use horizontal gradient for the
>>>> shading).
>>>> http://stackoverflow.com/questions/30310002/issue-creating-map-shad
>>>> in g- in-matplotlib-imshow-by-setting-opacity-to-data-gradi
>>>>
>>>>
>>>> Unfortunately I cannot share the data because I am using it for a
>>>> manuscripts, but my notebook with full code listing and plots, here:
>>>>
>>>> http://nbviewer.ipython.org/urls/dl.dropbox.com/s/2pfhla9rn66lsbv/s
>>>> ur fa ce_shading.ipynb/%3Fdl%3D0
>>>>
>>>> The shading using gradient is implemented in two ways as suggested
>>>> in the answer. What I do not understand is why the last plot comes
>>>> out with a rainbow-like colors, when I did specify cubehelix as
>>>> colormap.
>>>>
>>>> hsv = cl.rgb_to_hsv(img_array[:, :, :3]) hsv[:, :, 2] = tdx_n rgb =
>>>>  cl.hsv_to_rgb(hsv) plt.imshow(rgb[4:-3,4:-3], cmap='cubehelix')
>>>> plt.show()
>>>>
>>>>
>>>> Am I doing something wrong or is this unexpected behavior; is there
>>>> a workaround?
>>>
>>>>
>>>> Thanks
>>>> Matteo
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> --
>>> --
>>> -----
>>> One dashboard for servers and applications across
>>> Physical-Virtual-Cloud
>>> Widest out-of-the-box monitoring support with 50+ applications
>>> Performance metrics, stats and reports that give you Actionable
>>> Insights
>>> Deep dive visibility with transaction tracing using APM Insight.
>>> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
>>> _______________________________________________
>>> Matplotlib-users mailing list
>>> Matplotlib-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>>
>>>
>>>
>>>
>>
>>
>>
>> -----------------------------------------------------------------------
>> --
>> -----
>> One dashboard for servers and applications across Physical-Virtual-Cloud
>>  Widest out-of-the-box monitoring support with 50+ applications
>> Performance metrics, stats and reports that give you Actionable Insights
>>  Deep dive visibility with transaction tracing using APM Insight.
>> http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
>> _______________________________________________
>> Matplotlib-users mailing list
>> Matplotlib-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>>
>>
>>
>
>
>


------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud 
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to