Logo by Dinkydau - 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: Visit the official fractalforums.com Youtube Channel
 
*
Welcome, Guest. Please login or register. April 18, 2024, 09:15:47 AM


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]   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: from image to function  (Read 5041 times)
0 Members and 1 Guest are viewing this topic.
A.Real
Guest
« on: October 21, 2006, 12:58:18 AM »

Hi everyone,
Do anybody know were to find an introduction on finding a fractal function from a digital image?  huh? There was this guy in famous Arthur Clarke's documentary saying he got the answer from a dream and so on.
The idea is that you don't know the function, and you find it out from the final image on screen!
Logged
Jules Ruis
Fractal Lover
**
Posts: 209


Jules Ruis


WWW
« Reply #1 on: October 21, 2006, 09:22:55 AM »

I do not understand your question. Can you explain it a little bit more.

Jules Ruis.
Logged

Jules J.C.M. Ruis
www.fractal.org
A.Real
Guest
« Reply #2 on: October 23, 2006, 09:43:42 AM »

In this Arthur Clarke's documentary, Michael Barnsley explains how he discovered the way of transforming a given digital fractal image into an algorithm, which is able then to reproduce the same picture and more.

My research is most related to finding a pattern (function) from a given set of events on screen (fractal image for example)

A.


PS: I'll read the image compression forums, maybe their algorithms do the job.

Logged
lkmitch
Fractal Lover
**
Posts: 238



« Reply #3 on: October 23, 2006, 06:58:06 PM »

In this Arthur Clarke's documentary, Michael Barnsley explains how he discovered the way of transforming a given digital fractal image into an algorithm, which is able then to reproduce the same picture and more.


Michael Barnsley and his crew developed the Collage theorem, which led to fractal compression algorithms used in products like Genuine Fractals.  The basic idea is to decompose an image into regions which can be efficiently represented by IFS sets.  If you can do that, then:  a) the original image can be replaced by the sets of IFS parameters, at a potentially huge compression ratio, and 2) a fractal version of the original image (not an exact copy of the original image) can potentially be generated at any size, irrespective of the size of the original.  Read Barnsley's papers and/or patent for the technical details.

Kerry
Logged
A.Real
Guest
« Reply #4 on: October 24, 2006, 02:53:27 PM »

I understood, great!

The basic idea is to decompose an image into regions which can be efficiently represented by IFS sets. 
Are these regions chosen arbitrary, like from a 16x16 pixel grid? Or are they chosen depending on some image features?

A fractal version of the original image (not an exact copy of the original image) can potentially be generated at any size, irrespective of the size of the original. 

I thought Barnley couldn't make it. I read that article from julesruis link about digital compression, and there was this Graduate Student Algorithm solution:
Graduate Student Algorithm:

 Acquire a graduate student. 
 Give the student a picture. 
 And a room with a graphics workstation. 
 Lock the door. 
 Wait until the student has reverse engineered the picture. 
 Open the door.

 tongue stuck out
Logged
Charleswehner
Guest
« Reply #5 on: November 01, 2006, 03:43:59 PM »

What you are talking about is CHAOS THEORY. It is theoretically IMPOSSIBLE to reverse-engineer an image.

The Mandelbrot set is Z <- Z2 + C, which is within a recursion. So you get Z4 the next time around. Then Z16, then Z256, then Z65536 and so on. I once worked out that after 256 recursions there is a seventy-eight figure number as the power of Z. If you are young now, starting on the arithmetic, you will not be young when you are halfway through, and you will never finish. That is for a single dot.

However, the human mind is very good at feeling. So if you feel that a fractal image resembles something you saw before, whose formula you know, it is possible that you will have guessed the solution. That is because one can learn by experience, and also because most fractalists start at the same Mandelbrot set and then modify it, so one only has to guess at a small subset of all the fractals that would be possible.

Charles
Logged
heneganj
Guest
« Reply #6 on: November 02, 2006, 01:11:28 PM »

I think it is possible to achieve an infinite level of compression if you are willing to spend an infinite amount of time compressing and decompressing.
Logged
lycium
Fractal Supremo
*****
Posts: 1158



WWW
« Reply #7 on: November 02, 2006, 07:42:10 PM »

I think it is possible to achieve an infinite level of compression if you are willing to spend an infinite amount of time compressing and decompressing.

nope, the theoretical minimum amount of information required for a signal is a well-established result due to claude shannon: http://en.wikipedia.org/wiki/Information_theory
Logged

heneganj
Guest
« Reply #8 on: November 02, 2006, 10:53:52 PM »

Well just look at you!   tongue stuck out
Logged
Charleswehner
Guest
« Reply #9 on: November 04, 2006, 03:51:46 PM »

I wrote a tiny program (source at http://wehner.org/tools/fractals/numbers/mandel.asm ) which works out the first few computations of Z <- Z2 + C. First, you get Z2. Then Z4. Then Z16. Look at this:

2

4

16

256

65536

4294967296

18446744073709551616

340282366920938463463374607431768211456

115792089237316195423570985008687907853269984665640564039457584007913129639936

134078079299425970995740249982058461274793658205923933777235614437217640300735
46976801874298166903427690031858186486050853753882811946569946433649006084096

179769313486231590772930519078902473361797697894230657273430081157732675805500
963132708477322407536021120113879871393357658789768814416622492847430639474124
377767893424865485276302219601246094119453082952085005768838150682342462881473
913110540827237163350510684586298239947245938479716304835356329624224137216

323170060713110073007148766886699519604441026697154840321303454275246551388678
908931972014115229134636887179609218980194941195591504909210950881523864482831
206308773673009960917501977503896521067960576383840675682767922186426197561618
380943384761704705816458520363050428875758915410658086075523991239303855219143
333896683424206849747865645694948561760353263220580778056593310261927084603141
502585928641771167259436037184618573575983511523016459044036976132332872312271
256847108202097251571017269313234696785425806566979350459972683529986382155251
66389437335543602135433229604645318478604952148193555853611059596230656


That is for just eleven iterations. The eleventh number has 617 places of decimal. To work out what has happened to X and iY, you just do the four multiplications that are a "complex multiplication" (ie a+ib times c+id gives ac, ad, bc and bd to be multiplied) - but 32317thing times. That gives you the first term. Then you do it 32317thing - 2 times, and multiply by 32317thing and by the constant to get the second term. Just keep going until you have resolved the entire polynomial.

Yes, it is Z2 + C
Z4 + 2Z2C + C2 + C
and on, and on until there are (roughly) 32317thing/2 terms.

That resolves one dot after eleven iterations. But what causes the pattern? You do the same job for all the neighbouring dots - to see how they compare in their behaviour.

Suppose you have 256 colours, and therefore 256 iterations. Following the sequence above, which doubles in length (approximately) at every step, you will end up with a number so enormous that the universe is too small to contain it.

And that is the size of the job that must be done to understand one dot.

Such is chaos. Organised chaos. Perfect mathematical determinism, but impossible for a human to predict.

The output of that program, as shown above, is at http://wehner.org/tools/fractals/numbers/scale.txt .

I also researched compression (http://www.wehner.org/compress ), and came up with the most fundamental string-matching algorithm. Claude Elwood Shannon had invented the word "binary digit - bit". He put a binary number down as, for example 10000000001, and counted the unchanging bits - there are nine here, between the 1s. This he defined as "entropy". He predicted that data would compress as the logarithm base 2 of its length. There is the famous expression Pi * Log2(Pi). No - that is not Pi. It is "blues brother" Claude Elwood having fun.

When I produced programs that did indeed compress according to a logarithmic law, I was surprised to find that when data had poor entropy, but repeated en bloc, it compressed to Log2 of its length, but when it had total entropy - like 1 1 1 1 1 &c., it compressed to Log1.618 of its size - as I had expected.

Of course, there is another kind of compression nobody ever thinks of. Suppose you write a fractal-generating program in a few bytes or kilobytes. Is that not compression? Running the program generates the image. That is a kind of "unpacking" of the compressed knowledge into a multi-pixel image. How much "compression" do you want? Increase the height and width parameters in the program, and you have more "compression".

Charles

Logged
Charleswehner
Guest
« Reply #10 on: November 05, 2006, 02:04:08 PM »

Heneganj wrote:

"I think it is possible to achieve an infinite level of compression if you are willing to spend an infinite amount of time compressing and decompressing".

I have thought about this. I want you to take a text-editor and write Z <- Z * Z + C. How many bytes does that take? Fourteen? But when "decompressed", it can produce INFINITE amounts of fractal. So you have already got infinite compression!!!!

Another thing - you take the 32317thingy number and square it, to get the twelfth in the series. How many decimal figures have you got? 1234. This number, to me, is strangely familiar - 1234. Wow! Order out of chaos.

And finally,
THIS is the set of all jokes that DOES include itself.

Charles
Logged
matera
Guest
« Reply #11 on: November 05, 2006, 09:53:29 PM »

Score:
chaos 23
order 0

wink
Logged
Charleswehner
Guest
« Reply #12 on: November 06, 2006, 04:28:38 PM »

My original statement that you get a 78-figure number after 256 iterations was wrong. It is much bigger than that. It was 617 after eleven iterations.

I think what I meant was something like 278-figure-number.

On a website that deals with numbers of the form , one will often need to print , but this is impossible.

Perhaps one uses the suffix, normal type and then superfix, like this: Z2n. Is there any other way of printing ?

Also, I gave Z <- Z * Z + C as the Mandelbrot formula, because there are many places on the Web that say it is. That statement is wrong. I know this, because that was the bug in my program. If Z0 is the starting condition, Mandelbrot is Z <- Z * Z + Z0.

Charles
Logged
lycium
Fractal Supremo
*****
Posts: 1158



WWW
« Reply #13 on: November 07, 2006, 07:26:14 AM »

btw, all this discussion is moot if the image is rendered with supersampling*; not only is there information loss in the finite number of colours available with which to represent the original colour (effectively containing decimal places, itself an approximation as well), but also deconvolving the pixels with the image filter used isn't really feasible.

* there's a subtle point to this, since fractals have infinite complexity at all scales - one might expect supersampling to actually ADD ugly speckles to the image! however, since in practise the iteration is truncated after a finite number of loops, the signal is bandlimited and does admit effective supersampling. i would also argue that fractals really deserve supersampling since there's so much detail to be shown, and terribly few pixels...
Logged

Pages: [1]   Go Down
  Print  
 
Jump to:  


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.22 seconds with 27 queries. (Pretty URLs adds 0.01s, 2q)