コード例 #1
0
ファイル: Form1.cs プロジェクト: Adelhaide22/Diploma
        private void btn_Wiener_Click(object sender, EventArgs e)
        {
            var sw = new Stopwatch();

            var initialImage = (Bitmap)pictureBox1.Image;

            var greyImage = ImageHelper.ToGray(initialImage);

            pictureBox1.Image = greyImage;

            var brokenImage = new Bitmap(greyImage);

            switch (Filter)
            {
            case ImageHelper.Filter.Gauss:
                brokenImage = GaussianFilter.Blur(greyImage, kernelSize);
                break;

            case ImageHelper.Filter.Sharpen:
                brokenImage = SharpenFilter.Sharpen(greyImage, kernelSize);
                break;

            case ImageHelper.Filter.MotionLeftToRight:
                brokenImage = MotionFilter.Motion(greyImage, kernelSize, Direction.LeftToRight);
                break;

            case ImageHelper.Filter.MotionRightToLeft:
                brokenImage = MotionFilter.Motion(greyImage, kernelSize, Direction.RightToLeft);
                break;

            default:
                break;
            }

            pictureBox2.Image = brokenImage;

            var coreImage = ImageHelper.GetCoreImage(ImageHelper.ToGray(brokenImage), Filter);

            pictureBox3.Image = coreImage;

            sw.Start();
            var reconstructedImage = WienerFilter.Filter(ImageHelper.ToGray(brokenImage), Filter);

            pictureBox4.Image = reconstructedImage;

            sw.Stop();

            MessageBox.Show($"{ImageHelper.GetPSNR(greyImage, reconstructedImage)}");
            //MessageBox.Show(sw.Elapsed.TotalSeconds.ToString());
        }
コード例 #2
0
ファイル: Form1.cs プロジェクト: Adelhaide22/Diploma
        private void btn_motion_Click(object sender, EventArgs e)
        {
            var sw = new Stopwatch();

            sw.Start();

            var initialImage = (Bitmap)Image.FromFile(openFileDialog1.FileName);
            //var brokenImage = MotionFilter.Motion(initialImage, kernelSize, Direction.LeftToRight);
            var brokenImage = MotionFilter.Motion(initialImage, kernelSize, Direction.RightToLeft);

            pictureBox2.Image = brokenImage;

            sw.Stop();
            //Filter = ImageHelper.Filter.MotionLeftToRight;
            Filter = ImageHelper.Filter.MotionRightToLeft;
        }