/// <summary> /// Square of distance between 2 RGB byte vectors. /// </summary> /// <param name="rgb1">RGB vector number 1.</param> /// <param name="rgb2">RGB vector number 2.</param> /// <returns>Square of distance</returns> public static int SquareOfDistance(Cip.Foundations.VectorRgb rgb1, Cip.Foundations.VectorRgb rgb2) { int sum = 0; int s0 = rgb1[0] - rgb2[0]; int s1 = rgb1[1] - rgb2[1]; int s2 = rgb1[2] - rgb2[2]; sum += s0 * s0; sum += s1 * s1; sum += s2 * s2; return sum; }
public void SetPixel(int x, int y, Cip.Foundations.VectorRgb rgb) { if (_isAlpha) { index = ((y * _width + x) * 4); _rgbValues[index] = rgb.B; _rgbValues[index + 1] = rgb.G; _rgbValues[index + 2] = rgb.R; _rgbValues[index + 3] = 255; } else { index = ((y * _width + x) * 3); _rgbValues[index] = rgb.B; _rgbValues[index + 1] = rgb.G; _rgbValues[index + 2] = rgb.R; } }
/// <summary> /// Constructor with parameters. /// </summary> /// <param name="mode"> /// mode can be 0 for fast (nearest pixel) method, /// 1 for accurate (bicubic spline interpolation) method, /// or 2 for slow (bilinear) method.</param> /// <param name="newx">New width.</param> /// <param name="newy">New height.</param> public Resample(int newx, int newy, Cip.Transformations.CipInterpolationMode mode) { this.newx = newx; this.newy = newy; this.mode = mode; }
/// <summary> /// Constructor with parameters. /// </summary> /// <param name="mode"> /// mode can be 0 for fast (nearest pixel) method, /// 1 for accurate (bicubic spline interpolation) method, /// or 2 for slow (bilinear) method.</param> /// <param name="newSize">New size.</param> public Resample(System.Drawing.Size newSize, Cip.Transformations.CipInterpolationMode mode) { this.newx = newSize.Width; this.newy = newSize.Height; this.mode = mode; }
public void SetFilter(Cip.Foundations.ImageFilter filter) { this.filterPreview.Filter = filter; }
/// <summary> /// Distance between 2 RGB byte vectors. /// </summary> /// <param name="rgb1">RGB vector number 1.</param> /// <param name="rgb2">RGB vector number 2.</param> /// <returns>Double number, which represents distance.</returns> public static double Distance(Cip.Foundations.VectorRgb rgb1, Cip.Foundations.VectorRgb rgb2) { return System.Math.Sqrt(Cip.CipMath.SquareOfDistance(rgb1, rgb2)); }
/// <summary> /// Constructor. /// </summary> /// <param name="Mode">HSI or RGB colorspace.</param> /// <param name="radius">Range of mask.</param> public SmoothingFilter(Cip.Filters.ColorSpaceMode Mode, int radius) { mode = Mode; this.n = radius * 2 + 1; }