Exemplo n.º 1
0
        private void CmdProcess_Click(object sender, EventArgs e)
        {
            int Min_PosX = 0, Min_PosY = 0, Max_PosX = 0, Max_PosY = 0;

            BitmapData SrcBmpData = SrcBmp.LockBits(new Rectangle(0, 0, SrcBmp.Width, SrcBmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
            BitmapData DstBmpData = DstBmp.LockBits(new Rectangle(0, 0, DstBmp.Width, DstBmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);

            Stopwatch Sw = new Stopwatch();

            Sw.Start();

            SrcImg  = new TMatrix(SrcBmp.Width, SrcBmp.Height, SrcBmpData.Stride, (int)IP_DEPTH.IP_DEPTH_8U, 3, (byte *)SrcBmpData.Scan0);
            DestImg = new TMatrix(DstBmp.Width, DstBmp.Height, DstBmpData.Stride, (int)IP_DEPTH.IP_DEPTH_8U, 3, (byte *)DstBmpData.Scan0);

            TMatrix *Dest = null;

            MatchTemplate(ref DestImg, ref SrcImg, ref Dest);
            MinMaxLoc(ref *Dest, ref Min_PosX, ref Min_PosY, ref Max_PosX, ref Max_PosY);
            IP_FreeMatrix(&Dest);
            SrcBmp.UnlockBits(SrcBmpData);
            DstBmp.UnlockBits(DstBmpData);

            Pen      P = new Pen(Color.Red);
            Graphics G = Graphics.FromImage(DstBmp);

            G.DrawRectangle(P, new Rectangle(Min_PosX, Min_PosY, SrcImg.Width, SrcImg.Height));
            P.Dispose();
            G.Dispose();

            LblInfo.Text = "Image size: " + PicSrc.Image.Width.ToString() + " X " + PicSrc.Image.Height.ToString() + "\nAlgorithm processing time " + Sw.ElapsedMilliseconds.ToString() + " ms";
            PicDest.Refresh();
        }
Exemplo n.º 2
0
        private void CmdProcess_Click(object sender, EventArgs e)
        {
            Stopwatch Sw = new Stopwatch();

            Sw.Start();
            DCT_Denoising(ref SrcImg, ref DestImg, SigmaC.Value * 0.1f);
            Sw.Stop();
            LblInfo.Text = "Algorithm processing time: " + Sw.ElapsedMilliseconds.ToString() + " ms";
            PicDest.Refresh();
        }
Exemplo n.º 3
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.º 4
0
        void ShowResult()
        {
            BitmapData SrcBmpData = SrcBmp.LockBits(new Rectangle(0, 0, SrcBmp.Width, SrcBmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
            BitmapData DstBmpData = DstBmp.LockBits(new Rectangle(0, 0, DstBmp.Width, DstBmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);

            SrcImg  = new TMatrix(SrcBmp.Width, SrcBmp.Height, SrcBmpData.Stride, (int)IP_DEPTH.IP_DEPTH_8U, 3, (byte *)SrcBmpData.Scan0);
            DestImg = new TMatrix(SrcBmp.Width, SrcBmp.Height, SrcBmpData.Stride, (int)IP_DEPTH.IP_DEPTH_8U, 3, (byte *)DstBmpData.Scan0);

            Stopwatch Sw = new Stopwatch();

            Sw.Start();

            SelectiveBlur(ref SrcImg, ref DestImg, Radius.Value, Threshold.Value, EdgeMode.Tile);

            LblInfo.Text = "Image size: " + PicSrc.Image.Width.ToString() + " X " + PicSrc.Image.Height.ToString() + "\nAlgorithm processing time " + Sw.ElapsedMilliseconds.ToString() + " ms";

            SrcBmp.UnlockBits(SrcBmpData);
            DstBmp.UnlockBits(DstBmpData);
            PicDest.Refresh();
        }
Exemplo n.º 5
0
        private void CmdDeal_Click(object sender, EventArgs e)
        {
            BitmapData SrcBmpData = SrcBmp.LockBits(new Rectangle(0, 0, SrcBmp.Width, SrcBmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
            BitmapData DstBmpData = DstBmp.LockBits(new Rectangle(0, 0, DstBmp.Width, DstBmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);

            Stopwatch Sw = new Stopwatch();

            Sw.Start();


            SrcImg  = new TMatrix(SrcBmp.Width, SrcBmp.Height, SrcBmpData.Stride, (int)IP_DEPTH.IP_DEPTH_8U, 3, (byte *)SrcBmpData.Scan0);
            DestImg = new TMatrix(DstBmp.Width, DstBmp.Height, DstBmpData.Stride, (int)IP_DEPTH.IP_DEPTH_8U, 3, (byte *)DstBmpData.Scan0);

            ImageQuilting(ref SrcImg, ref DestImg, TileSize.Value, TileSize.Value, Overlap.Value, Overlap.Value);



            SrcBmp.UnlockBits(SrcBmpData);
            DstBmp.UnlockBits(DstBmpData);
            LblInfo.Text = "Image size: " + PicSrc.Image.Width.ToString() + " X " + PicSrc.Image.Height.ToString() + "\nAlgorithm processing time " + Sw.ElapsedMilliseconds.ToString() + " ms";
            PicDest.Refresh();
        }
Exemplo n.º 6
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;
        }