コード例 #1
0
ファイル: PictureAnalizer.cs プロジェクト: Arthyom/C-Xmpls
        public static Bitmap []  ImagenDeTextura(Bitmap Im_Ent, Dictionary <int, double>[] hrs)
        {
            // conseguir los maximos de las sumas y diferencias
            double MaxSuma  = PictureAnalizer.MaximoHasha(hrs[0]);
            double MaxResta = PictureAnalizer.MaximoHasha(hrs[1]);
            double MaxGenrl = 0;

            if (MaxSuma > MaxResta)
            {
                MaxGenrl = MaxSuma;
            }
            else
            {
                MaxGenrl = MaxResta;
            }

            // crear vector de imagenes de textura
            Bitmap[] VectImgTxt = new Bitmap[6];

            // inicar las imagenes
            for (int i = 0; i < 6; i++)
            {
                VectImgTxt[i] = PictureAnalizer.DibujarNegra(Im_Ent.Width, Im_Ent.Height);
            }

            // crear una mascara para representar la subventana
            Mascara Mx = new Mascara(new Size(3, 3));

            // recorrer la imagen
            for (int i = 0; i < Im_Ent.Height; i++)
            {
                for (int j = 0; j < Im_Ent.Width; j++)
                {
                    // conseguir pixel
                    int Pi = PictureAnalizer.PixelColor2Gray(Im_Ent.GetPixel(j, i));


                    // cortar contenido de la imagen origina con la mascara
                    Bitmap subImg = PictureAnalizer.CortarMascaraSobreImagen(Mx, Im_Ent, new Point(j, i));

                    // calcular las caracteristicas de textura de la subimagen
                    double[] op = PictureAnalizer.CalcularCaracteristicasTextura(Im_Ent);

                    // asignar operaciones a la imagen
                    for (int k = 0; k < 6; k++)
                    {
                        int trnas = (int)Math.Round((op[i] * 255) / MaxGenrl);
                        VectImgTxt[i].SetPixel(j, i, Color.FromArgb(trnas, trnas, trnas));
                    }
                }
            }
            return(VectImgTxt);
        }