Exemple #1
0
        public void ProcessImageTest()
        {
            double[,] diag = Matrix.Magic(5);

            Bitmap input;

            new MatrixToImage()
            {
                Format = PixelFormat.Format24bppRgb
            }.Convert(diag, out input);

            var whitePatch = new WhitePatch();

            // Apply the filter
            Bitmap output = whitePatch.Apply(input);

            double[,] actual;

            new ImageToMatrix().Convert(output, out actual);

            string str = actual.ToString(CSharpMatrixFormatProvider.InvariantCulture);

            double[,] expected =
            {
                {                 1, 0.968627450980392,                 1,                 1,                 1 },
                { 0.972549019607843,                 1,                 1,                 1,                 1 },
                {                 1,                 1,                 1, 0.984313725490196, 0.976470588235294 },
                {                 1,                 1, 0.988235294117647, 0.980392156862745,                 1 },
                {                 1, 0.992156862745098, 0.964705882352941,                 1,                 1 }
            };

            Assert.IsTrue(expected.IsEqual(actual, 1e-6));
        }
        /// <summary>
        /// Applies White Patch filter for color normalization (Accord.NET function)
        /// </summary>
        /// <param name="img">image.</param>
        /// <param name="inPlace">Apply in place or not. If it is set to true return value can be omitted.</param>
        /// <returns>Processed image.</returns>
        internal static Image <TColor, TDepth> WhitePatch <TColor, TDepth>(this Image <TColor, TDepth> img, bool inPlace = true)
            where TColor : IColor
            where TDepth : struct
        {
            WhitePatch wp = new WhitePatch();

            return(img.ApplyFilter(wp, inPlace));
        }
Exemple #3
0
        public void ApplyTest1()
        {
            Bitmap image = Accord.Imaging.Image.Clone(Resources.lena_color);

            // Create the White Patch filter
            var whitePatch = new WhitePatch();

            // Apply the filter
            Bitmap result = whitePatch.Apply(image);

            // ImageBox.Show(result);
            Assert.IsNotNull(result);
        }
Exemple #4
0
        /// <summary>
        /// Applies White Patch filter for color normalization (Accord.NET function)
        /// </summary>
        /// <param name="img">image.</param>
        /// <param name="inPlace">Apply in place or not. If it is set to true return value can be omitted.</param>
        /// <returns>Processed image.</returns>
        public static Bgra <byte>[,] WhitePatch(this Bgra <byte>[,] img, bool inPlace = true)
        {
            WhitePatch wp = new WhitePatch();

            return(img.ApplyFilter(wp, inPlace));
        }
Exemple #5
0
        /// <summary>
        /// This is the method that actually does the work.
        /// </summary>
        /// <param name="DA">The DA object is used to retrieve from inputs and store in outputs.</param>
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            IGH_Goo goo   = null;
            Image   image = new Image();

            if (!DA.GetData(0, ref goo))
            {
                return;
            }
            if (!goo.TryGetImage(ref image))
            {
                return;
            }

            int mode = 0;

            DA.GetData(1, ref mode);

            double numVal = 0.5;

            DA.GetData(2, ref numVal);

            Filter filter = new Filter();

            switch ((FilterModes)mode)
            {
            case FilterModes.GrayWorld:
                SetParameter(2);
                filter = new GrayWorld();
                break;

            case FilterModes.Histogram:
                SetParameter(2);
                filter = new Histogram();
                break;

            case FilterModes.Invert:
                SetParameter(2);
                filter = new Invert();
                break;

            case FilterModes.Stretch:
                SetParameter(2);
                filter = new Stretch();
                break;

            case FilterModes.WhitePatch:
                SetParameter(2);
                filter = new WhitePatch();
                break;

            case FilterModes.Sepia:
                SetParameter(2);
                filter = new Sepia();
                break;

            case FilterModes.RGChromacity:
                SetParameter(2);
                filter = new RGChromacity();
                break;

            case FilterModes.Brightness:
                SetParameter(2, "V", "Adjust Value", "[0-1] Unitized adjustment value");
                filter = new Brightness(numVal);
                break;

            case FilterModes.Contrast:
                SetParameter(2, "V", "Factor Value", "[0-1] Unitized adjustment value");
                filter = new Contrast(numVal);
                break;

            case FilterModes.Gamma:
                SetParameter(2, "V", "Gamma Value", "[0-1] Unitized adjustment value");
                filter = new Gamma(numVal);
                break;

            case FilterModes.Hue:
                SetParameter(2, "V", "Hue Value", "[0-1] Unitized adjustment value");
                filter = new Hue(numVal);
                break;

            case FilterModes.Saturation:
                SetParameter(2, "V", "Adjust Value", "[0-1] Unitized adjustment value");
                filter = new Saturation(numVal);
                break;
            }

            message = ((FilterModes)mode).ToString();
            UpdateMessage();

            image.Filters.Add(filter);

            DA.SetData(0, image);
            DA.SetData(1, filter);
        }
        public mAdjustWhitePatch()
        {
            BitmapType = mFilter.BitmapTypes.None;

            filter = new WhitePatch();
        }