Ejemplo n.º 1
0
        private static RGBPixel[,] CalculateRresults(RGBPixel[,] R, RGBPixel Rmax, out int count)
        {
            count = 0;
            int Height = ImageOperations.GetHeight(R);
            int Width  = ImageOperations.GetWidth(R);

            RGBPixel[,] Result = new RGBPixel[Height, Width];
            for (int i = 0; i < Height; i++)
            {
                for (int j = 0; j < Width; j++)
                {
                    Result[i, j] = new RGBPixel(0, 0, 0);
                }
            }
            for (int i = 1; i < Height - 1; i++)
            {
                for (int j = 1; j < Width - 1; j++)
                {
                    Result[i, j] = new RGBPixel(0, 0, 0);
                    if (R[i, j].red > 0.1 * Rmax.red && R[i, j].red > R[i - 1, j - 1].red && R[i, j].red > R[i - 1, j].red && R[i, j].red > R[i - 1, j + 1].red && R[i, j].red > R[i, j - 1].red && R[i, j].red > R[i, j + 1].red && R[i, j].red > R[i + 1, j - 1].red && R[i, j].red > R[i + 1, j].red && R[i, j].red > R[i + 1, j + 1].red)
                    {
                        Result[i, j].red = 1;
                    }
                    if (R[i, j].green > 0.1 * Rmax.green && R[i, j].green > R[i - 1, j - 1].green && R[i, j].green > R[i - 1, j].green && R[i, j].green > R[i - 1, j + 1].green && R[i, j].green > R[i, j - 1].green && R[i, j].green > R[i, j + 1].green && R[i, j].green > R[i + 1, j - 1].green && R[i, j].green > R[i + 1, j].green && R[i, j].green > R[i + 1, j + 1].green)
                    {
                        Result[i, j].green = 1;
                        count++;
                    }
                    if (R[i, j].blue > 0.1 * Rmax.blue && R[i, j].blue > R[i - 1, j - 1].blue && R[i, j].blue > R[i - 1, j].blue && R[i, j].blue > R[i - 1, j + 1].blue && R[i, j].blue > R[i, j - 1].blue && R[i, j].blue > R[i, j + 1].blue && R[i, j].blue > R[i + 1, j - 1].blue && R[i, j].blue > R[i + 1, j].blue && R[i, j].blue > R[i + 1, j + 1].blue)
                    {
                        Result[i, j].blue = 1;
                    }
                }
            }
            return(Result);
        }
Ejemplo n.º 2
0
        public static void GetMinMaxRGBValues(RGBPixel[,] ImageMatrix)
        {
            int    Height = ImageOperations.GetHeight(ImageMatrix);
            int    Width = ImageOperations.GetWidth(ImageMatrix);
            double Max = -100000000000, Min = 10000000000000;

            for (int i = 0; i < Width; i++)
            {
                for (int j = 0; j < Height; j++)
                {
                    double tmp = (double)ImageMatrix[j, i].red;
                    if (tmp > Max)
                    {
                        Max = tmp;
                    }
                    if (tmp < Min)
                    {
                        Min = tmp;
                    }
                }
            }
            minValue = Min;
            maxValue = Max;
        }
Ejemplo n.º 3
0
 private void ApplyFilter_Click(object sender, EventArgs e)
 {
     RGBPixel[,] output = Filter.ApplyFilter(InputImageInfo.imgCopy, Filter.SelectedFilter, Filter.SelectedFilter_KernelSize);
     ImageOperations.DisplayImage(output, outputImagePbox);
     outputImagePbox.SizeMode = PictureBoxSizeMode.StretchImage;
 }