Exemplo n.º 1
0
        private void ShowHazeRemovalResult()
        {
            Busy = true;
            Bitmap     SrcB       = (Bitmap)PicSrc.Image;
            Bitmap     DstB       = (Bitmap)PicDest.Image;
            BitmapData SrcBmpData = SrcB.LockBits(new Rectangle(0, 0, SrcB.Width, SrcB.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
            BitmapData DstBmpData = DstB.LockBits(new Rectangle(0, 0, DstB.Width, DstB.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
            Stopwatch  Sw         = new Stopwatch();

            Sw.Start();
            HazeRemovalUseDarkChannelPrior((byte *)SrcBmpData.Scan0, (byte *)DstBmpData.Scan0, SrcBmpData.Width, SrcBmpData.Height, SrcBmpData.Stride, BlockSize.Value, GuideBlockSize.Value, MaxAtom.Value, Omega.Value * 0.01f, Epsilon.Value * 0.001f, T0.Value * 0.01f);
            Sw.Stop();
            this.Text = Sw.ElapsedMilliseconds.ToString();

            SrcB.UnlockBits(SrcBmpData);
            DstB.UnlockBits(DstBmpData);
            PicDest.Invalidate();
            Busy = false;
        }
Exemplo n.º 2
0
        private void ShowAdaptHistEqualizeResult()
        {
            Busy = true;
            Bitmap     SrcB       = (Bitmap)PicSrc.Image;
            Bitmap     DstB       = (Bitmap)PicDest.Image;
            BitmapData SrcBmpData = SrcB.LockBits(new Rectangle(0, 0, SrcB.Width, SrcB.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
            BitmapData DstBmpData = DstB.LockBits(new Rectangle(0, 0, DstB.Width, DstB.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);

            CopyMemory((byte *)DstBmpData.Scan0, (byte *)SrcBmpData.Scan0, SrcBmpData.Stride * SrcBmpData.Height);
            Stopwatch Sw = new Stopwatch();

            Sw.Start();

            AdaptHistEqualize((byte *)DstBmpData.Scan0, SrcBmpData.Width, SrcBmpData.Height, SrcBmpData.Stride, TileX.Value, TileY.Value, ClipLimit.Value * 0.001f, SepChannel.Checked);

            Sw.Stop();
            this.Text = Sw.ElapsedMilliseconds.ToString();
            SrcB.UnlockBits(SrcBmpData);
            DstB.UnlockBits(DstBmpData);
            PicDest.Invalidate();
            Application.DoEvents();
            Busy = false;
        }