Logo by visual - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Follow us on Twitter
 
*
Welcome, Guest. Please login or register. April 16, 2024, 03:11:18 PM


Login with username, password and session length


The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!


Pages: 1 [2]   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: Non-parametric color mapping techniques  (Read 20138 times)
0 Members and 1 Guest are viewing this topic.
tomnzed
Forums Newbie
*
Posts: 1


« Reply #15 on: September 05, 2012, 01:40:35 PM »

Thanks a lot for the post, lots of useful info smiley
Logged
SeryZone
Strange Attractor
***
Posts: 253


Contemplate...


« Reply #16 on: April 05, 2014, 11:20:39 PM »

thank you very much!!! I experiment with my Iterations Equalization and I use logarithmic, because histogram take too much time for delphi programms...
Logged

SeryZone
Strange Attractor
***
Posts: 253


Contemplate...


« Reply #17 on: April 27, 2014, 03:12:18 PM »

I've written a short comparison of the rank-ordering and histogram methods (and some other typical ones) of mapping counts to colors

http://www.hpdz.net/TechInfo_Colorizing.htm.

I made some test images and graphs showing the effect of each method on some different images. I call them "non-parametric" because they are not based on any analytic model of how the counts are distributed (e.g. linear, log); a similar name is used for statistical tests that do not assume how the data is distributed.

This is a follow-up to a conversation between Duncan C and me in a different thread. Continuing to go into more detail on this issue in that thread seemed to off-topic, so I am starting a new one here.

Hello! how to realize rank-order equalization??? Please, even logarithmic do not give smooth results! Please, show me C code or Delphi - I can understand all!
Logged

johandebock
Explorer
****
Posts: 59



WWW
« Reply #18 on: September 27, 2015, 02:13:12 PM »

Hello! how to realize rank-order equalization??? Please, even logarithmic do not give smooth results! Please, show me C code or Delphi - I can understand all!

Check my code here:
https://github.com/johandebock/BuddhaBrot-MT/blob/master/BuddhaBrot-MT.cpp
coloring method = cm = 0 is my implementation of rank-order mapping
coloring method = cm = 1 is my implementation of histogram mapping

Easiest way is to search for hits on the normalisation value cm0n/cm1n in the code.
1st step is building up the histogram from the counts.
2nd step is using it to map the counts to colors in the color table.
Logged

FractalStefan
Explorer
****
Posts: 45



WWW
« Reply #19 on: May 12, 2017, 03:43:08 PM »

One way to do it with logarithms would be with the function 1 + 1/(log(1-x)-1). This will still map [0,1] to [0,1] monotonically increasing, also with infinite derivative at x=1.

There must be a miskake in this formula, since log(1-x) gives an error for x=1.

The function

x = log(x*4n+1) / log(4n+1)

with n = [0...10] (set by a slider control) lets the user determine the degree of the gradient.

Example images:

Original (linear gradient)


n = 0.00


n = 1.00


n = 1.50


n = 2.00


n = 2.50


Using a gamma function instead of a logarithmic one, the gradient becomes a bit softer:

x = x1/Gamma

(Gamma = 0.1...10)

Example images:

Original (linear gradient)


Gamma = 0.50


Gamma = 1.00 (this is equal to a linear gradient)


Gamma = 1.50


Gamma = 2.00


Gamma = 2.50


Sometimes a simple 1/4 sinus curve yields good results:

x = sin(x * Pi / 2)

Example image:

Original (linear gradient)


1/4-Sinus


This function automatically adapts the degree of the gradient to the number of visible iterations/colors:

x = (log(iterations) - log(minIterations)) / (log(maxIterations) - log(g_minIterations))

Example image:

Original (linear gradient)


Auto-Logarithm


The example images were created by this JavaScript application.

Stefan
« Last Edit: May 14, 2017, 12:52:16 AM by FractalStefan, Reason: Added example images » Logged
FractalStefan
Explorer
****
Posts: 45



WWW
« Reply #20 on: May 16, 2017, 12:55:21 AM »

I just wrote a more detailed article about some non-linear color mapping functions including an comparison chart with example images:

Color Mapping – Mapping an iteration count to a color in the Mandelbrot set

Logged
Pages: 1 [2]   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Some Buddhabrot questions / techniques Programming asimes 12 11813 Last post March 13, 2012, 05:00:36 PM
by ker2x
Mixing DE techniques Programming tryptophan 3 4711 Last post May 28, 2013, 03:04:47 AM
by tryptophan
Mandelbulb 3D - color-mapping question ("Fabergè Experiment") Help & Support m2001 1 569 Last post May 24, 2015, 01:25:01 PM
by m2001
Parametric color mapping techniques Programming bkercso 2 5322 Last post July 17, 2015, 02:20:35 AM
by bkercso
Better color/texture mapping options. feature request Weber 2 4867 Last post April 04, 2016, 04:35:04 PM
by MarkJayBee

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.165 seconds with 28 queries. (Pretty URLs adds 0.009s, 2q)