YOUR ACCOUNT

Login or Register to post new topics or replies
uberzev
not lyftzev

Posts: 1890
Filters: 36
Just wondering. smile:D
  Details E-Mail
uberzev
not lyftzev

Posts: 1890
Filters: 36
Or to put it another way, is there a way to get the curve of the external image?
  Details E-Mail
Quasimondo
Quasimondo

Posts: 147
Filters: 32
Oh yes that sounds like an important addition. Maybe a minimum and a maximum extractor component would be good for that purpose - this data could then be fed into the levels component.
  Details E-Mail
uberzev
not lyftzev

Posts: 1890
Filters: 36
Guess this should be moved to feature wishlist Vlad?
  Details E-Mail
uberzev
not lyftzev

Posts: 1890
Filters: 36
Bump, this is really important one to me!
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
uberzev wrote:
Guess this should be moved to feature wishlist Vlad?


I'm afraid that it can't be done. Here's why:

For auto-levels, you need a histogram. To build a histogram, you need the whole image. The problem is that Filter Forge doesn't operate on whole images, it operates on blocks (the squares you see in the preview when it renders the picture). A histogram of a single block is useless for auto-levels, you need the whole picture.

Even if Filter Forge had a way to calculate a histogram of an entire image, filters that use this would be painfully slow and completely non-interactive -- you wouldn't see anything in the preview until the histogram is rendered.

So, to my regret, the current architechture of Filter Forge does not allow histograms and therefore auto-levels to be implemented.
  Details E-Mail
Quasimondo
Quasimondo

Posts: 147
Filters: 32
Hmmm. Okay let's assume that the histogram gets calculated for each block separately. What if in one branch of my filter I created a tiled version of the image where ich tile exactly fits into one block size? Wouldn't I get something like an approximation of the image's histogram?

I still think that this min/max function would be useful for all kinds of effects.
  Details E-Mail
onyXMaster
Filter Forge, Inc.
Posts: 350
Block size is dynamic and is dependent on different factors, including output image size (with discrete steps and certain alignments) so you won't fit your tile into a single block reliably.

Actually, the rough histogram estimation is possible if the histogram source in question is sampled with a decreased resolution. But even if this hypothetic Histogram (or MinMax or whatever) component is implemented, it's actual performance hit on the filter rendering is indeterministic and so it should not be allowed.

The only exception to this rule would be a histogram of the input image. For stand-alone mode we are able to determine the input image histogram (or at least min/max/median/whatever) at zero additional cost. On the other hand, the plugin mode will suffer some serious penalties for large images, since, unfortunately, hosts (i.e. Photoshop) do not make their histogram caches available to the plugins smile:( The performance penalty is probably not that high though, especially for images with dimensions below 2048x2048, and if the histogram downsampling is allowed, certain hosts that fully implement the plugin interface (most of Adobe hosts) may provide us with moderately fast histogram retreival.

To summarize -- stand-alone mode min/max/median and other single-value curve data is relatively easy, plugin mode isn't.
  Details E-Mail
onyXMaster
Filter Forge, Inc.
Posts: 350
JFYI: I'll perform a few tests for plugin mode histogram extraction in my spare time, but don't expect anything solid in the near future.
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Hmmm... I have to admit that the idea is interesting. We'll explore that on low priority.
  Details E-Mail
IONclad
Building art one node at a time.
Posts: 123
Filters: 25
I have to say, half of the operations I do is to compensate for the lack of an autolevel function. Any sort of accurate 'obtain highest lum value' or lowest etc. would be a big assistance.

a lot of problems with creating dynamic filters where you are breaking the source apart based on luminance, if the user changes the noise in the wrong way the whole 'splitting' process gets ruined. One must use curves and simply estimate the averages...

any sort of balancing/normalizing tool would be AWESOME.

the artist formerly known as Bongo51
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Quote
Bongo51 wrote:
Any sort of accurate 'obtain highest lum value' or lowest etc. would be a big assistance.


We had a discussion about this feature yesterday. The current status is as follows:

We still can't do any histogram-based operation that takes an unbounded procedural component as a source simply because components never gets to see the "whole image" (see my and onyXMaster's explanations above).

However, onyXMaster's idea about offering histogram-based data for the input image and selection (represented by External > Image and External > Selection components) seems to be well within the practical bounds. This may lead to some overhead (as he explained above), but this isn't a showstopper.

As for the implementation, we're going to explore this idea together with the unclipped HDR pipeline and HDR math components -- these things are closely related.
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Update: The histogram-based components for extraction of minimum/maximum levels from the source image are already implemented in the current beta -- you can find them in the External category.
  Details E-Mail
Richard Bartlett
Texturing Hobbyist
Posts: 58
Filters: 11
I've been toying with these new components myself lately and haven't figured out how they are used.

Anyone have an example I can look at?
  Details E-Mail
Vladimir Golovin
Administrator
Posts: 3446
Filters: 55
Richard, here's an example -- an AutoLevels filter with adjustable clipping amount:

AutoLevels.ffxml
  Details E-Mail
uberzev
not lyftzev

Posts: 1890
Filters: 36
Still looking for an equalize filter. Perhaps this could be a custom script?
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
Could be...

At least you got me to update the histogram filter with a new script-based version.
  Details E-Mail
ThreeDee
Lost in Space

Posts: 1672
Filters: 112
...and looks like making an equalize filter is pretty easy from there. smile:D
  Details E-Mail
inujima

Posts: 176
Filters: 26
Here is Equalize filter working well only a grayscale image..
But I don't know well how the photoshop equalize filter operates the RGB color image.

Equalize_grayscale.ffxml
  Details E-Mail
Skybase
2D/3D Generalist

Posts: 4025
Filters: 76
Question: what exactly is the filter doing?
  Details E-Mail
inujima

Posts: 176
Filters: 26
Equalize filter for RGB image has been completed.
But the speed and accuracy are not so good.

Equalize.ffxml
  Details E-Mail
inujima

Posts: 176
Filters: 26
Group Component version.

Equalize Group.ffxml
  Details E-Mail

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:

28 unregistered users.