A pure-C# image processing library.
var image = Image.Load<Rgb24>(file + ".png");
Matrix<Rgb8> imageMatrix = image.ToSequentialMatrix();
Matrix<Rgb8> blurredImageMatrix = Blur.GaussianBlur(imageMatrix, 0.8f, 2);
var labImageMatrix = blurredImageMatrix.Map(pixel => pixel.ToLab32(RgbColorSpace.sRGB));
IDisjointSet segmentationMatrix = EgbiSegmentation.Segment(labImageMatrix, kFactor: 50, minSegmentSize: 200);
var imageSegmeted = imageMatrix.Clone();
EgbiSegmentation.ColorImageBySegmentation(imageSegmeted, segmentationMatrix.ToRegions());
var saliencyMatrix = GlobalContrastSaliency.ComputeSaliency(imageMatrix);
var saliencyImageMatrix = saliencyMatrix.Map(s => new Rgb8((byte)(s.Value * 255), (byte)(s.Value * 255), (byte)(s.Value * 255)));
image = saliencyImageMatrix.ToImage();
image.Save(file + "_global_saliency.png");
saliencyMatrix = RegionalContrastSaliency.ComputeSaliency(imageMatrix, segmentationMatrix);
saliencyImageMatrix = saliencyMatrix.Map(s => new Rgb8((byte)(s.Value * 255), (byte)(s.Value * 255), (byte)(s.Value * 255)));
image = saliencyImageMatrix.ToImage();
image.Save(file + "_regional_saliency.png");