Dec 24th 2011

The main purpose of the Color Reduction tool is to maximize the contrast in the color channels of an image. This can improve the input for color segmentation tools as well as the results of color to grayscale conversions. We implemented two different algorithms in order to determine color space transformations that optimize the contrast: Principle Component Analysis (PCA) and Locality Preserving Projections (LPP).

Both methods can be applied to transform or reduce 2-4 input channels to 1-4 output channels, for a single image or a range of images. A secondary image input can be used to supply a weighting mask that determines the influence of each pixel during the color reduction algorithm. Afterwards, the output channels can be normalized and optionally, the color transformation can be encoded in a Fusion 3D LUT.


Download Color Reduction 1.0Download Color Reduction

Read the rest of this entry »

No Comments »
Nov 18th 2011

Download RGBtoLAB 1.03Download RGBtoLAB

Ok, this Fuse started off as a really tiny one.  Fusion already has a CSConvert() that does Lab.  So all I have to do is…

if mode == 0 then

out:CSConvert("RGB", "LAB")

else

out:CSConvert("LAB", "RGB")

end

Simple and fast.  But the results were a bit… unexpected. So we added a little tweak which has no basis in known color science, it just makes is so that a linear RGB input returns what I think is a linear L output.

So why doesn’t ColorSpace have an Lab button?  I don’t know.  You can see LAB color in action in the Wand tool, though.

Other options include output a LUT Image only, as if it were a Source tool.  Same as the new option on ColorMatrixTransform.  You can also choose whether to affect the canvas color or not.


9 Comments »
May 11th 2011

The signed distance operator can be quite useful when doing image/voxel data processing based on a pixel’s distance from an iso-surface. This plugin calculates just that. The plugin is implemented using Open CL, so the Open CL program should also be copied into the same directory as the Fuse plugin.

Download Signed Distance Fuse Download Signed Distance Fuse

The tool has inputs to control the position of the iso-surface (Zeropass Threshold) and the number of rasterizing passes (Number of Passes). The output can be a distance value or a 2D – vector pointing towards the closest point in the iso-surface.

Get the Flash Player to see the wordTube Media Player.

No Comments »
Dec 10th 2010

Smoothing an image without losing all the edges, that’s what the Bilateral Filter is made for. It basically performs a Gaussian blur not only in the image dimensions, but also on the color intensities. Therefore it will smooth homogeneous areas while at the same time respecting the image’s edges. The following example shows the effect very well.

The current version is for Fusion 6.1 in 64 bit only. It provides the standard bilateral filter as well as the cross bilateral filter for grayscale and color images. DoD and RoI can be used to limit processing to a desired section of the image. Since the exact filter is very slow when applying large filter kernels, calculation in OpenCL with an optional approximation method is implemented as well. First tests on supported graphic cards show a speed up by a factor of 3-5 for OpenCL with default parameters. On gray scale images with large filter sizes, the approximation method can be more than a hundred times faster.

Download Bilateral Filter 1.2Download Bilateral Filter

3 Comments »
Oct 29th 2010

Finally took the plunge and converted one of our icky Lua Fuses into shiny OpenCL.

Download Unit Vector OpenCL Fuse Download Unit Vector OpenCL Fuse

It’s a very simple function, normalizing a vector and returning that in the RGB while putting the original length into the A.  In the case of the 4D normalize, you don’t get the length.  I have no idea what took me so long to get around to this, it only took an hour or two to flesh out, but I got hung up by the fact that my video card, a Quadro 5000, does not, at this time, have OpenCL drivers that support float3.  Float4?  Fine.  Float2?  No problem.  Float3?  Fail.  So I went ahead and implemented the 3D normalize manually, and used the fast_normalize OpenCL function to make a 4D normalize.

Read the rest of this entry »

1 Comment »
Oct 21st 2010

Stefan Ihringer pointed out something on the VFXPedia that finally got me to put together a Fuse I’ve been putting off.   Since Joe Laffey never got around to updating his plugins, it makes sense to go ahead and toss this up.

Download AlphaDivideMultiply Fuse 1.01Download AlphaDivideMultiply Fuse

Just a simple RGB/A or RGB*A, plus a “Solid” and “Clear” so you don’t have to use the annoying Bol or Mat as much.   Nothing groundbreaking, but it should save a few clicks per day.

UPDATE:  I made a ViewShader for this in case you want to keep this operation in the viewer and not in the flow. Download AlphaMultiplyDivideVS

No Comments »
Oct 18th 2010

Not multum in parvo, but Maximum (or Minimum) Intensity Projection.

Download MIP Fuse 1.13Download MIP Fuse

This simple Fuse just takes a range over time and generates an image with the highest or lowest pixels.  Great for normalizing.  It does so for each channel, so it can be useful for color normalization too, or for finding the bounding box of a position pass.  It can also be useful for making “summary” thumbnails of footage.

Read the rest of this entry »

7 Comments »
Jun 23rd 2010

Because we couldn't wait for fuses

New shader(s) coming soon

1 Comment »
Feb 20th 2010

A sizable segment of the population suffers from color blindness, enough so that it’s worth considering the implications on color palettes and usability.  This tool allows you to simulate the ways that various color vision deficiencies will affect you imagery.  I’ve noticed that some of the images we create probably won’t read very well to some people, and this easily lets us check if we’ve created something that could be ambiguous.

ColorBlind fuse

ColorBlind fuse

Read the rest of this entry »

No Comments »
Oct 22nd 2009

Fusion 6 added a Color Matrix tool that lets you enter your own matrix by hand, but the biggest problem with it is the lack of any methods to modify it with.  You can’t even assign controllers to it.

Fuses, however,  let you use handy methods to modify a matrix.  I’ve used some of them to create an RGB equivalent of the 3D Transform tool.  It has a similar UI, just as 3TT does, but this modifies RGB, not XYZ or UVW.

Color Matrix Tranform fuse

Color Matrix Transform fuse

Read the rest of this entry »

7 Comments »

« Previous Entries