コード例 #1
0
ファイル: Form1.cs プロジェクト: GordeevVV/CG-mine
        private void openingToolStripMenuItem_Click(object sender, EventArgs e)
        {
            bool[,] mask = new bool[3, 3];
            mask[0, 0]   = true;
            mask[0, 1]   = true;
            mask[0, 2]   = true;
            mask[1, 0]   = true;
            mask[1, 1]   = true;
            mask[1, 2]   = true;
            mask[2, 0]   = true;
            mask[2, 1]   = true;
            mask[2, 2]   = true;
            MathMorf open = new Opening();
            //backgroundWorker2.RunWorkerAsync(open);
            Bitmap resultImage = open.procImg(image, mask, 3, 3 /*, backgroundWorker2*/);

            pictureBox1.Image = resultImage;
            pictureBox1.Refresh();
        }
コード例 #2
0
ファイル: Filters.cs プロジェクト: gondurovad/CompGr-lab
        public override Bitmap processImage(Bitmap sourceImage, BackgroundWorker worker)
        {
            Bitmap  resultImage = new Bitmap(sourceImage.Width, sourceImage.Height);
            Filters Op          = new Opening();
            Bitmap  result      = Op.processImage(sourceImage, worker);

            //суть: открытие минус исходное изображение
            for (int i = 0; i < sourceImage.Width; i++)
            {
                worker.ReportProgress((int)((float)i / resultImage.Width * 100));
                if (worker.CancellationPending)
                {
                    return(null);
                }
                for (int j = 0; j < sourceImage.Height; j++)
                {
                    int newR = Clamp(result.GetPixel(i, j).R - sourceImage.GetPixel(i, j).R, 0, 255);
                    int newG = Clamp(result.GetPixel(i, j).G - sourceImage.GetPixel(i, j).G, 0, 255);
                    int newB = Clamp(result.GetPixel(i, j).B - sourceImage.GetPixel(i, j).B, 0, 255);
                    resultImage.SetPixel(i, j, Color.FromArgb(newR, newG, newB));
                }
            }
            return(resultImage);
        }
コード例 #3
0
ファイル: Form1.cs プロジェクト: gondurovad/CompGr-lab
        private void открытиеToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Morphology filter = new Opening();

            backgroundWorker1.RunWorkerAsync(filter);
        }