YOUR ACCOUNT

Messages 46 - 90 of 354
First | Prev. | 1 2 3 4 5 | Next | Last 
Login or Register to post new topics or replies
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
Steganographic Decoder returns

Hahaa -- steganographic decoding solved!

Here's the original image from wikipedia:



Run through Steganographic Decoder filter:



What made it work was using a Step Curve to make the original work like an 8-bit image even though FF does its calculations at floating-point accuracy!

(This method of faking 8-bit processing is bound to improve alpha-packing and unpacking success, too.)

So here's my question: is this just too obscure a filter to submit?

Or a sure-fire HU when you batch every PNG image on the web in search of more steganographically hidden images...? smile:D

Okay, I think I know the answer: if I make a Steganographic Encoder as well, it will be worth it, right?
  Details E-Mail
CorvusCroax
CorvusCroax

Posts: 1227
Filters: 18
Quote
ThreeDee wrote:
So here's my question: is this just too obscure a filter to submit?

Or a sure-fire HU when you batch every PNG image on the web in search of more steganographically hidden images...? Big grin

Okay, I think I know the answer: if I make a Steganographic Encoder as well, it will be worth it, right?


Oh, you should submit it, just for coolness factor!
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
stegano what? i see some trees and i see a cat.
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
jffe
Posts: 2869
Filters: 90
You turned a tree into a cat ?! smile:banana: Awesomeness. smile:D

jffe
Filter Forger
  Details E-Mail
Carl
c r v a

Posts: 7289
Filters: 82
You've encoded the cat pic with the tree pic but to make a decoder to get it out again that is a challenge - hats off if you can acheive that smile:D
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
Quote
Kraellin wrote:
stegano what? i see some trees and i see a cat.


Steganography (scroll down to "Example from modern practice") -- hiding an image inside an image.

Quote
Carl wrote:
You've encoded the cat pic with the tree pic but to make a decoder to get it out again that is a challenge - hats off if you can acheive that smile:D


So far I've only made the decoder, the encoded image is from the wikipedia article.
  Details E-Mail
Carl
c r v a

Posts: 7289
Filters: 82
Quote
ThreeDee wrote:
So far I've only made the decoder, the encoded image is from the wikipedia article.

Hats off then smile:D so the encoding should be the easy bit then smile:fairy:
  Details E-Mail
Sphinx.
Filter Optimizer

Posts: 1750
Filters: 39
Quote
ThreeDee wrote:
Hahaa -- steganographic decoding solved!


I'm looking forward to see your solution - I've been trying to make a decoder too, also using step curve approach.. however when I get to the difference step, I don't get anything but black as result ..GRRR..

It took 2 mins to hack the decoder together in Delphi, but that darn AND operation is what is causing problems in FF.

Basically what I did in Delphi was this:

BITS = 2;

M := 255 - (BITS + 1);
S := 255 div (BITS + 1);

R_out := Abs(R_in - (R_in and M)) * S;

and the same for G and B.. works perfectly.. not so easy to get into FF though..hehe
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
well, i can see steganography's going to make a lot of people even more paranoid than they already are. lol. interesting topic, 3D. and you're going to build one of these things in FF? boy, you really are bored, arent you smile;) smile:D
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
Quote
Sphinx. wrote:
I'm looking forward to see your solution - I've been trying to make a decoder too, also using step curve approach.. however when I get to the difference step, I don't get anything but black as result ..GRRR..

It took 2 mins to hack the decoder together in Delphi, but that darn AND operation is what is causing problems in FF.

Basically what I did in Delphi was this:

BITS = 2;

M := 255 - (BITS + 1); S := 255 div (BITS + 1);

R_out := Abs(R_in - (R_in and M)) * S;

and the same for G and B.. works perfectly.. not so easy to get into FF though..hehe


Yup, notably easier with a couple of lines of code and in native 8-bit environment.

In fact, it was much easier with just plain Photoshop with a couple of layers and curves than with FF.

Since this is such a ridiculous filter and I don't know if I'm going to bother to try and figure out the encoding side of it, here's the 2-bit Decoder in case someone wants to try it out. At least it worked with the wikipedia sample. I couldn't even find other samples to try it on.



Steganography Decoder.ffxml
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
3D construction with Blend modes

Most of us use this already to some degree or other, but there is more exploration to be had with using Blend modes for constructing things in 3D.

Give you an example: Say you wanted to make a 3D labyrinth from the point of view that you are inside the labyrinth and can move around in it. (I'm not saying that I'm planning to do so, necessarily... smile:D ) How would you go about making sure that the wall closest to you rendered in front of all the other walls?

You could make some rather complicated if-then branches in your filter tree.

Or then you could blend the walls (which would be height maps) in Lighten mode and the one closest to the view would automatically cover every other one up!

These don't have to be walls, they could be any objects that are represented by a height map. Blending ANY number of objects with Lighten mode will result in correct z-axis (depth) stacking, without further attention.

Now, here's another thing to know: You can isolate a single object from any such set by blending two images, one with and one without that object in it, in Difference Mode. Thresholding the result at 100 will make a mask for just the visible parts of that one object.

Probably need pix?
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
how do you make an if-then branch in FF?
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
With Threshold and Blend. In essence:

IF (gray value)>(threshold) THEN (foreground): ELSE (background)

"Foreground" can represent a whole branch of the filter and "Background" another branch.

The Threshold output (black or white) is fed into the Blend Opacity input.

In logic terms, black = no, white = yes.
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
Example:

IF (slider A > 20) THEN (picture of apple): ELSE (picture of banana)

Wherein Slider A would be converted to a gray tone (Assemble HSL) and thresholded by 20 to blend 100% or 0% between Foreground (apple) or Background (banana).
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
oh, like you did with the right and left strands in the lightning filter. never thought of that as an if-then before. cool smile:)

hmmm, that might lead me to a solution i've been trying with luminance. thanks smile:)
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
Well, actually, much more appropriately, just skip the Blend and hook the THEN and ELSE branches to the High and Low inputs of the Threshold.

That makes the Threshold Component the IF-THEN-ELSE component of FF.

(Something in Dilla's popcorn munching reminded me of this. IF popcorn THEN eat ELSE buy.)
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
k, it is like the left and right strands then. got it. so, the source input is the IF. cool smile:) i'd never even thought of various operations in FF as boolean or code-like. got any more?
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
It becomes rather obvious when you reduce the input/output to black and white (0 and 1, false and true).

Blending two inputs (A and B) equal the following operations:

A(Blend Darken)B = A AND B

A(Blend Lighten)B = A OR B

A(Blend Difference)B = A XOR B

as well as

A(Invert) = NOT A
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
Quote
A(Blend Lighten)B = A OR B


hmmm, not sure i get that one, but then i'm not sure i understand exactly what lighten does other than it seems to bleed the lighter parts of two objects through to the top. but not even sure of that.

you'll have to forgive my ignorance, TD. i work mostly on effect stuff where i dont particularly have to know the math, logic, boolean and so on. i just have to be able to see smile:) but i am somewhat familiar with boolean from early computer studies. i'm just not quite seeing how lighten is an OR. i would have thought it would have been more of an inverse of darken and therefore just another AND but based on a different base.

and A(Invert) = NOT A, i think i understand. you're saying there that any value (A), inverted equals NOT A... i think smile:)

interesting. always fascinates me what people use to think with. i'm more a visual and audio computer, where folks like yourself seem to be more mathematically oriented. and jffe, well, jffe is a special case and we're still trying to figure him out smile;) smile:D
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
this is the routine i was talking about that seemed to demonstrate what you were saying about components as IF-THENs. this, to me, is just brilliant. both bottom blends are set to multiply to get the best possible black-white resolution and the threshhold is set to 50 with no smoothing. thus, everything plugged into the low will resolve per the upper blend source on the left of the threshhold, the dark side, and everything on the right will go light because of the blend plugged into the high. freaky brilliant!

you with me on this, dilla? and let's share that popcorn, eh?

If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
Crapadilla
lvl 52 Filter Weaver and Official "Filter Forge Seer"

Posts: 4365
Filters: 65
Quote
Kraellin wrote:
you with me on this, dilla? and let's share that popcorn, eh?


I'm with you on that one (i.e. the lightning filter), although the thresholds are no news to me... smile;) smile:devil:
--- Crapadilla says: "Damn you, stupid redundant feature requests!" ;)
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
ah, ok. guess i'm the last one to learn this then smile:)
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
roseenglish
English Rose
Posts: 24
OMG! ThreeDee thats so clever!
I was looking at your Suburbia filter thinking "how the hell did he do that?" came then saw your disco ball read the info - didnt undersatand it lol - followed your link to the forums and DL that png image to test it... and I am amazed!
Hate clever ppl smile:p
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
What? Someone understood the disco ball? You might be the first one that ever did smile:D
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
Quote
Blending two inputs (A and B) equal the following operations:

A(Blend Darken)B = A AND B

A(Blend Lighten)B = A OR B

A(Blend Difference)B = A XOR B

as well as

A(Invert) = NOT A


i've been studying this lately and i was wondering if you had a method of subtraction using blends and thresholds...or any other components, for that matter. i looked at a blend with 50% opacity in normal, but that's not really a subtraction. it's more of an average. but i could sure use a subtraction if you've got one. in other words, i need an A - B.
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
Quote
Kraellin wrote:
i've been studying this lately and i was wondering if you had a method of subtraction using blends and thresholds...or any other components, for that matter. i looked at a blend with 50% opacity in normal, but that's not really a subtraction. it's more of an average. but i could sure use a subtraction if you've got one. in other words, i need an A - B.


I believe you can do that with Tone Curve. Theory goes:

B = Start input of Tone Curve
Inverted B = Maximum Input of Tone Curve

Apply this Tone Curve to A

(I'll have to try this to verify it went correctly.)

This will clip at 0 obviously. If you want the inverse result in the negative ranges [-(A - B) when A - B < 0], you could do the reverse Tone Curve [exchange A and B] and blend it with a Threshold 0 of the above result.
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
Yup, looks like that does it.

A - B.ffxml
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
ok, i've only had a few minutes to look at that, TD, (gotta go to work soon), but i'm confused. how is that a subtraction? not saying it's not, but i'll have to study it further. but, one thing, what i particularly wanted was to subtract one threshold from another in order to isolate one value or one range of values out of the thresholds.

i've gotta run now. i'll look at all this later today.

thanks, TD smile:)
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
Oh, I see. No, the above is subtracting one value or grayscale image from another. So you are looking at just taking an area which is A AND NOT B, where A and B are threshold results, right?

That would be then as simple as Inversing B and blending A and B with Minimum.

Or, even simpler, making Inverse B the High Input of Threshold A.

If I understood what you are trying to do correctly.

I'll post a snippet here shortly.
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
ok, am looking at your new one here and it looks like masking, and if i substitute in an 'image' component for the perlin and the other source, then it simply looks like an 'and'. so, let me try this again.

what i'm trying to do is subtract the results of one threshold from another in order to isolate a value or range of values within those threshold values. hmm, that's not saying it very well either. take a look at the filter i'm posting here. it's a very slight variation of yours where i've simply substituted in 'image' components. i want to threshold each of those image components with different threshold values then subtract one from the other. but, i dont want to add the results of each threshold leg; i want to subtract one from the other... A - B.

the basic idea, what this is all leading to, is that threshold is limited as it is in extracting values. it's a very linear thing. the threshold simply moves down the line and keeps limiting values (or adding, depending on which way you're moving the slider). but, this doesnt give you all that's possible or shld be possible for extractions. for instance, it shld be possible to extract just one color or one grayscale or a range of colors or a range of grays but using the thresholds to subtract one value from another. or, maybe it would work better with tone curves. but, let's stick to thresholds first. think of it as like doing a shadows/midtones/highlights type of filter. you want to extract a range of values to be the shadows and a range for the midtones and a range for the highlights. but, there is no extraction component like that. would be nice if there was, but there isnt. it would also be nice if there was a subtraction blend mode, but there isnt, at least not that i know of.

at any rate, there's a number of useful filters that can be done by being able to isolate a value or range of values and i think the secret to doing them is having a threshold subtraction method.

A-B rthresholdt by ThreeDee rev 1.ffxml
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
I added controls to this version and a color to indicate the selected range.

Is this not basically what you're trying to do? It is selecting values above a certain threshold and then subtracting the values above another threshold, so as to isolate a midtone selection range.

(And yes, I would think it would be better to do this with Tone Curves, you could make smoother selection edges that way, with various curve shapes)

Selection range.ffxml
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
Height Painting

This idea came from Corvus Croax's spacecraft development. Painting onto a height map from the side (as opposed from the top).

Rather than the theory, here's a simple example of it.



And here's the filter.

HeightPainting.ffxml
  Details E-Mail
Indigo Ray
Adam

Posts: 1442
Filters: 82
How about using the height map to paint itself by using a refraction?
Or, how about using an image?
And try turning the smoothness up on at least one threshold.



  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
well, TD, i thought i could pit one threshold against another inverted one and get a subtraction by adding the two together in a blend, but it doesnt work. so, i'm still stuck without being able to isolate a single color (with no blacks or whites either). i'm open to any other suggestions.
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
Hi Kraellin,

So, what controls are you looking at having in your 'isolate color' filter and what is the output you want?

Like Hue, Saturation, Smoothness controls and a 'alpha' channel output for the selection?
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
hi TD,

all i'm after is to be able to isolate a single rgb value to begin with, and after that, a range of values, like all the reds, or all the oranges/reds of the life preserver, for instance. it would be similar to the magic wand in photoshop/paint shop pro in that you could pick how wide or narrow a range you wanted to capture.

i see it more as a snippet that i, and others, could use to isolate those ranges and then treat just those ranges within a filter.

it would also be nice if it could distinguish lights and darks, as well... (again, like the magic wand) i suppose you could get into many different ways to isolate values and that would be great, but for the first, i'd just like to be to isolate and display a single value or small range of values.

there are color isolate filters already. i did one based on someone else's isolate, but they never quite achieved what i wanted.

such a filter, if it could really be made powerful and sensitive, could also act as an extractor tool, but that's down the road a bit.

the threshold component seemed like a good place to start, but it works on a linear basis with no subtractive element to it. it's just shifting down (or up) and doesnt isolate really. so, i thought if you could do two thresholds and invert one and then subtract one from the other, you could have what i was after. but, so far, i havent been able to make that work.

i also looked a mike's color picker, but that's doing something else. still, there might be something there of use to this.

anyways, whatever ya got, i'm interested smile:)
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
Betis
The Blacksmith

Posts: 1207
Filters: 76
I have a filter called Color Filter. That shows only the targeted hue with a slider to control Tolerance. Tolerance at 100 accepts all RGB Values, and 0 is more like none rather than only that color. From reading what you said, I think the filter you want I have already made.
Roses are #FF0000
Violets are #0000FF
All my base are belong to you.
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
Okay, here's one simple but good way of doing it:



Range Selector.ffxml
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
A bit more complex version of the same, isolating to a custom color by hue, lightness and saturation:



Color Selector.ffxml
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
Then you could make separate Range and Smoothness controls for Hue, Lightness and Saturation if you wanted to get fancier. 'IF' being the operative word.
  Details E-Mail
Kraellin
Kraellin

Posts: 12749
Filters: 99
ok, both of these are on the right track, but still missing what i'm trying to get here. first, you've converted to black and white and i see why you did so, but i want the result to be the color we're trying to extract/isolate. i modded both your filters to show this. but, in doing so, we're getting that threshold effect and we're not getting a range of colors but rather a scale of color change. that's different.

what i'm after is, think of a pure red. in rgb this would be 255/0/0. but forget the numbers. think color spectrum. if you take that pure red and move on the spectrum left or right and in fact, moved both left and right, expanding the range of your reds to more than just a pure red. you extract JUST those colors and that's my filter. if you moved to the blues you could do the same thing. if there were no blues in the image, it would just come up as nothing, unless you REALLY expanded your range, but best if it just didnt come up at all if there were no blues in the image.

so, in the life preserver, if you picked red or a decent range of reds, JUST the reds within that range would come up as showing.

attached is my slight mod of your range selector where i added in color and an extraction to a transparent background.

Range Selector by ThreeDee rev 1.ffxml
If wishes were horses... there'd be a whole lot of horse crap to clean up!

Craig
  Details E-Mail
Betis
The Blacksmith

Posts: 1207
Filters: 76
Did you try my filter? It sounds so much like what you're trying to explain.
Roses are #FF0000
Violets are #0000FF
All my base are belong to you.
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
Kraellin, Betis's filter seems to do pretty much exactly what you are describing. You probably just want to (based on your modified example) turn the selected range into the alpha channel (transparency).

Another thing that could be done is to combine Mike Blackney's "Color Picker" idea into it. That way you could get the color right out of the image instead of having to guess at it with the color swatch.

Depending on how exact you want to be, you can then add controls (similar to my Color Selector filter) for the hue range, saturation range and lightness range and smoothness separately. That way you can extract more accurately. Doing the extraction based on hue only is a bit limited in workability as you will find out as soon as you try it on a more complex or subtle (in terms of colors) image.

It's a balancing act between the simplicity of the controls versus the accuracy of the selection. Ideally (from user point of view) you would just have the color, range and smoothness. But for better separation you may need those other controls (Hue, Saturation, Lightness, etc.)

Perhaps a checkbox to activate "advanced controls"?
  Details E-Mail

Messages 46 - 90 of 354
First | Prev. | 1 2 3 4 5 | Next | Last 

Join Our Community!

Filter Forge has a thriving, vibrant, knowledgeable user community. Feel free to join us and have fun!

33,711 Registered Users
+18 new in 30 days!

153,531 Posts
+36 new in 30 days!

15,347 Topics
+72 new in year!

Create an Account

Online Users Last minute:

10 unregistered users.