Ejemplo n.º 1
0
        /// <summary>
        /// Test GetPictureDistortion function
        /// </summary>
        private void ButtonMeasure_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.pictureBox.Image == null)
                {
                    MessageBox.Show("Please, load an reference image first");
                }

                using (OpenFileDialog openFileDialog = new System.Windows.Forms.OpenFileDialog())
                {
                    openFileDialog.Filter   = "WebP images (*.webp)|*.webp";
                    openFileDialog.FileName = "";
                    if (openFileDialog.ShowDialog() == DialogResult.OK)
                    {
                        Bitmap  source;
                        Bitmap  reference;
                        float[] result;

                        //Load Bitmaps
                        source = (Bitmap)this.pictureBox.Image;
                        using (WebP webp = new WebP())
                            reference = webp.Load(openFileDialog.FileName);

                        //Measure PSNR
                        using (WebP webp = new WebP())
                            result = webp.GetPictureDistortion(source, reference, 0);
                        MessageBox.Show("Red: " + result[0] + "dB.\nGreen: " + result[1] + "dB.\nBlue: " + result[2] + "dB.\nAlpha: " + result[3] + "dB.\nAll: " + result[4] + "dB.", "PSNR");

                        //Measure SSIM
                        using (WebP webp = new WebP())
                            result = webp.GetPictureDistortion(source, reference, 1);
                        MessageBox.Show("Red: " + result[0] + "dB.\nGreen: " + result[1] + "dB.\nBlue: " + result[2] + "dB.\nAlpha: " + result[3] + "dB.\nAll: " + result[4] + "dB.", "SSIM");

                        //Measure LSIM
                        using (WebP webp = new WebP())
                            result = webp.GetPictureDistortion(source, reference, 2);
                        MessageBox.Show("Red: " + result[0] + "dB.\nGreen: " + result[1] + "dB.\nBlue: " + result[2] + "dB.\nAlpha: " + result[3] + "dB.\nAll: " + result[4] + "dB.", "LSIM");
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\r\nIn WebPExample.buttonMeasure_Click", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }