Joe Maller: FXScript Reference: Building Joe's Threshold and PosterizeA description of the FXScript ideas behind Joe's Threshold and Posterize filter for Final Cut Pro |
||
|
Visit the New FXScript Reference and Joe's Filters sites. These pages will be phased out soon and may already be out of date. This page is incomplete
Joe's Threshold and Posterize offers an extended set of thresholding controls for Final Cut Pro. Abstract
Explanation ofThe desaturation code for the first stoep of this filter is the same as Joe's RGB Desaturate applied at 100%.
Thresholding is a simple process; First a middle value is selected, then every value greater than the selected value becomes white, every value darker becomes black. The levelMap() can reassign the values but first we need to build a look-up matrix for levelMap() to work with. The value threshold was set with a user input slider between 0 and 255 First a 256-value floating point array needs to be initialized:
Then a simple loop will count from the threshold value up to 255. The
floating point variable
|
The FXScript ReferenceFXScripting Joe's FiltersJoe's Filters for Final Cut Pro Building Joe's Minimum Maximum Joe's FXScript ExplorersJoe's Debug and Explore Filters Joe's 3x3 Convolve Matrix Tester Joe's 3x3 Matrix Values Tester Other FCP Stuff
Film & VideoRecording the sound of PhotographyProjectsFinal Cut ProDesignWRITINGSite Notes Archive (weblog) Web ResourcesAbout Joe MallerPast Home Pages Etc.Search joemaller.comContact Me
|
|
Joe Maller: FXScript Reference: Joe's NoiseA description of the FXScript ideas behind Joe's Threshold and Posterize filter for Final Cut Pro |
||
|
Visit the New FXScript Reference and Joe's Filters sites. These pages will be phased out soon and may already be out of date. Joe's Threshold and Posterize offers an extended set of thresholding controls for Final Cut Pro.See a complete explanation of controls and example images for Joe's Threshold and Posterize. Because this filter is shareware, this explanation only explains the key concepts behind how it works rather then providing complete source code. Purchased versions of Joe's Filters are unlocked plug-ins containing the complete source code. Abstract
Explanation ofThe desaturation code for the first stoep of this filter is the same as Joe's RGB Desaturate applied at 100%.
Thresholding is a simple process; First a middle value is selected, then every value greater than the selected value becomes white, every value darker becomes black. The levelMap() can reassign the values but first we need to build a look-up matrix for levelMap() to work with. The value threshold was set with a user input slider between 0 and 255 First a 256-value floating point array needs to be initialized:
Then a simple loop will count from the threshold value up to 255. The
floating point variable
A lot of people respond negatively when seeing the word "clut" for the first time. I'm not going to speculate, but it's just an abbreviation/acronym for Color Look Up Table. I don't think this variable is technically a clut, but several of Final Cut Pro's built-in filters used that name for variables, and I just got used to calling 256-value arrays cluts. Of course, the variable name doesn't matter at all. The solution I came up with is based on this formula:
How it worksI used two inputs, a popup named RGBTarget and labeled "Source"; and a slider named desat and labeled "Saturation". The slider has values go from 0 to 100. For the matrix, I decided to enter values as variables since it was easier for me to think about, so I declared the following floating point Variables:
|
The FXScript ReferenceFXScripting Joe's FiltersJoe's Filters for Final Cut Pro Building Joe's Minimum Maximum Joe's FXScript ExplorersJoe's Debug and Explore Filters Joe's 3x3 Convolve Matrix Tester Joe's 3x3 Matrix Values Tester Other FCP Stuff
Film & VideoRecording the sound of PhotographyProjectsFinal Cut ProDesignWRITINGSite Notes Archive (weblog) Web ResourcesAbout Joe MallerPast Home Pages Etc.Search joemaller.comContact Me
|
|