On Sat, Jun 23, 2012 at 7:24 PM, Stefan Stavrev <[email protected]> wrote:
> I implemented everything we talked about so far, so you can comment
> the pull request and see the result images:
>
> https://github.com/StefanStavrev/oiio/commit/9cbf5cb1c6705d31c6e7709df3cf320b79969574

Yikes, I can see I'm going to have trouble keeping up :)  I'll try to have to
look at this in more detail tomorrow.

Thoughts about channel masks:  I think these would be really handy if we can
get them in there without making the API too complicated.  There is probably a
nice way to specify them in oiiotool as well:  How about a --channelmask option
which specifies the set of channels to act on.  For example:

oiiotool foo.jpg --channelmask 110 --contrast 0.5

would specify that we're acting on channels 0,1, and leaving channel 2 alone.

Keeping with this general idea, could the channel mask just be a char array?
That would be nice and simple to use in the API, for example:

contrast(R, A, 0.5, "110");

We would have:

ImageBufAlgo::contrast (ImageBuf &R, const ImageBuf &A, float contrast,
                        const char* channels_mask = 0,
                        ROI roi = ROI(), int nthreads = -1)

(Presumably we'd have an internal function to convert the const char* channel
mask string into a short array of bools for convenience.)

> PS: Compile time increased significantly. Chris could it be because of
> the type specialization functions?

Absolutely, though I'd expect it to mostly be coming from over() rather than
contrast(), since over() has 11 times more specializations!

~Chris
_______________________________________________
Oiio-dev mailing list
[email protected]
http://lists.openimageio.org/listinfo.cgi/oiio-dev-openimageio.org

Reply via email to