A set of filters and utilities for Apple's Core Image framework.
Available on both OS X and iOS.
Involving...
##Core Image Filters
###Filters
####YUCIRGBToneCurve
Adjusts tone response of the R, G, and B channels of an image.
The filter takes in an array of control points that define the spline curve for each color component, or for all three in the composite.
These are stored as CIVector
s in an NSArray
, with normalized X and Y coordinates from 0
to 1
.
The defaults are [(0,0), (0.5,0.5), (1,1)]
####YUCIColorLookup
Uses a color lookup table (LUT) to remap the colors in an image. The default LUT can be found at Sources/YUCIColorLookupTableDefault.png
This filter may not work well in the default light-linear working color space. Use kCIContextWorkingColorSpace
key to specify a working color space when creating the CIContext
object.
####YUCISurfaceBlur
A bilateral filter. Blurs an image while preserving edges. This filter is almost identical to Photoshop's "Surface Blur" filter.
Useful for creating special effects and for removing noise or graininess. Slow on large inputRadius
.
####YUCITriangularPixellate
Maps an image to colored triangles.
####YUCIFXAA
A basic implementation of FXAA (Fast Approximate Anti-Aliasing).
####YUCIHistogramEqualization
Perform a Histogram Equalization on the input image. Internally uses Accelerate.framework
.
####YUCIReflectedTile
Produces a tiled image from a source image by reflecting pixels over the edges.
####YUCICLAHE
Perform a Contrast Limited Adaptive Histogram Equalization on the lightness channel of the input image.
###Transitions
####YUCICrossZoomTransition
A transition that pushes the inputImage
toward the viewer and then snaps back with the inputTargetImage
.
####YUCIFlashTransition
Transitions from one image to another by creating a flash effect.
###Generators
####YUCIStarfieldGenerator
Generate a starfield image. Animatable by changing the inputTime
parameter. Based on Star Nest by Pablo Román Andrioli
####YUCIBlobsGenerator
Generate a image with colorful blobs. Animatable by changing the inputTime
parameter. Based on Blobs by @paulofalcao
##Utilities
####YUCIFilterConstructor
A singleton that conforms to CIFilterConstructor
protocol.
Can be used in +[CIFilter registerFilterName:constructor:classAttributes:]
to register a CIFilter
. This filter constructor simply assume that the filterName
is the class name of the custom CIFilter
and calls [[FilterClass alloc] init]
to construct a filter.
####YUCIFilterPreviewGenerator
Can be used to generate a preview image/gif for a filter. All the preview images/gifs on this page are generated by this utility. For demonstration/testing purposes only, do not use it in your production code.
##Next
- Add filter previews to readme.
- AA for triangular pixellate filter.
- CLAHE
- Write a paper on the implementation of CLAHE.
- Kuwahara filter
##Related Projects
An implementation of High Pass Skin Smoothing.
####YUCIImageView
An image view for rendering CIImage with Metal/OpenGL/CoreGraphics.