Esempio n. 1
0
        public void Save()
        {
            Result = $"/App_Images/{SecureGuidGenerator.GenerateGuid()}.png";

            using (var factory = new DefaultImageFactory())
            {
                factory
                .Load(GetPhysicalPath(ImagePath))
                .Apply(ImageOperations)
                .Save(GetPhysicalPath(Result));
            }
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            //using (var matrix = AppContext.DefaultImageFactory.CreateImageEx<IRGB>(m_model.Image))
            //{
            //    HOG hog = new HOG();
            //    var tmp = hog.CreateImage(matrix, 0, 0, matrix.Width, matrix.Height);
            //    hog.Resize(tmp);
            //}

            if (m_showed)
            {
                m_img.Source = m_model.Image;
                m_showed = false;
            }
            else
            {
                DefaultImageFactory temp = new DefaultImageFactory();
                using (var matrix = temp.CreateImageEx<IRGB>(m_model.Image))
                {
                    foreach (var point in m_model.Points)
                    {
                        int startx = (int)(point.X - point.Scale / 2);
                        int starty = (int)(point.Y - point.Scale / 2);
                        int stopx = (int)(point.X + point.Scale / 2);
                        int stopy = (int)(point.Y + point.Scale / 2);
                        startx = startx < 0 ? 0 : startx;
                        starty = starty < 0 ? 0 : starty;
                        stopx = stopx >= matrix.Width ? matrix.Width-1 : stopx;
                        stopy = stopy >= matrix.Height ? matrix.Height-1 : stopy;

                        for (int i = startx; i < stopx; i++)
                        {
                            for (int j = starty; j <= stopy; j++)
                            {
                                IRGB pixel = matrix[i, j];
                                pixel.R = 255;
                                pixel.G = 0;
                                pixel.B = 0;
                            }
                        }
                    }
                    m_img.Source = matrix.Image;
                }
                m_showed = true;
            }
        }
        void DrawEqualityPoints()
        {
            DefaultImageFactory temp = new DefaultImageFactory();
            using (var matrix = temp.CreateImageEx<IRGB>(m_model.Template.Image))
            {
                foreach (var point in m_model)
                {
                    int startx = (int)(point.Template.X - point.Template.Scale / 2);
                    int starty = (int)(point.Template.Y - point.Template.Scale / 2);
                    int stopx = (int)(point.Template.X + point.Template.Scale / 2);
                    int stopy = (int)(point.Template.Y + point.Template.Scale / 2);
                    startx = startx < 0 ? 0 : startx;
                    starty = starty < 0 ? 0 : starty;
                    stopx = stopx >= matrix.Width ? matrix.Width - 1 : stopx;
                    stopy = stopy >= matrix.Height ? matrix.Height - 1 : stopy;

                    for (int i = startx; i < stopx; i++)
                    {
                        for (int j = starty; j <= stopy; j++)
                        {
                            IRGB pixel = matrix[i, j];
                            pixel.R = 255;
                            pixel.G = 0;
                            pixel.B = 0;
                        }
                    }
                }
                m_img_template.Source = matrix.Image;
            }

            using (var matrix = temp.CreateImageEx<IRGB>(m_model.Sample.Image))
            {
                int minx = (int)m_model.Min(p => p.Sample.X);
                int miny = (int)m_model.Min(p => p.Sample.Y);
                int maxx = (int)m_model.Max(p => p.Sample.X);
                int maxy = (int)m_model.Max(p => p.Sample.Y);

                for (int i = minx; i < maxx; i++)
                {
                    IRGB pixel = matrix[i, miny];
                    pixel.R = 255;
                    pixel.G = 0;
                    pixel.B = 0;
                    if (pixel is IRGBA)
                    {
                        ((IRGBA)pixel).Alpha = 0;
                    }
                    pixel = matrix[i, maxy];
                    pixel.R = 255;
                    pixel.G = 0;
                    pixel.B = 0;
                    if (pixel is IRGBA)
                    {
                        ((IRGBA)pixel).Alpha = 0;
                    }
                }
                for (int i = miny; i < maxy; i++)
                {
                    IRGB pixel = matrix[minx, i];
                    pixel.R = 255;
                    pixel.G = 0;
                    pixel.B = 0;
                    if (pixel is IRGBA)
                    {
                        ((IRGBA)pixel).Alpha = 0;
                    }
                    pixel = matrix[maxx, i];
                    pixel.R = 255;
                    pixel.G = 0;
                    pixel.B = 0;
                    if (pixel is IRGBA)
                    {
                        ((IRGBA)pixel).Alpha = 0;
                    }
                }
                m_img_sample.Source = matrix.Image;
            }
        }