コード例 #1
0
        private void SizetrackBar_Scroll(object sender, EventArgs e)
        {
            _sizeValue     = SizetrackBar.Value;
            Sizelabel.Text = ("kSize : ") + _sizeValue.ToString();

            _homeform.showImage(gaussian.ApplyGaussianBlur(_sizeValue, _xValue, _yValue));
        }
コード例 #2
0
        //public void ApplyDFT()
        //{
        //    if (_ImageInput == null)
        //    {
        //        return;
        //    }
        //    Image<Gray, float> imgGray = _ImageInput.Convert<Gray, float>();
        //    //int m = CvInvoke.cvGetOptimalDFTSize(imgGray.Rows);
        //    //int n = CvInvoke.cvGetOptimalDFTSize(imgGray.Cols);

        //    IntPtr complexImage = CvInvoke.cvCreateImage(imgGray.Size, Emgu.CV.CvEnum.IPL_DEPTH.IPL_DEPTH_32F, 2);
        //    CvInvoke.cvSetZero(complexImage);//initialize all elements to Zero
        //    CvInvoke.cvSetImageCOI(complexImage, 1);
        //    CvInvoke.cvCopy(imgGray, complexImage, IntPtr.Zero);
        //    CvInvoke.cvSetImageCOI(complexImage, 0);
        //    Matrix<float> dft = new Matrix<float>(imgGray.Rows, imgGray.Cols, 2);
        //    CvInvoke.cvDFT(complexImage, dft, Emgu.CV.CvEnum.CV_DXT.CV_DXT_FORWARD, 0);

        //    //The Real part of the Fourier Transform
        //    Matrix<float> outReal = new Matrix<float>(imgGray.Size);
        //    //The imaginary part of the Fourier Transform
        //    Matrix<float> outImaginary = new Matrix<float>(imgGray.Size);
        //    CvInvoke.cvSplit(dft, outReal, outImaginary, IntPtr.Zero, IntPtr.Zero);

        //    CvInvoke.cvPow(outReal, outReal, 2.0);
        //    CvInvoke.cvPow(outImaginary, outImaginary, 2.0);

        //    CvInvoke.cvAdd(outReal, outImaginary, outReal, IntPtr.Zero);
        //    CvInvoke.cvPow(outReal, outReal, 0.5);

        //    CvInvoke.cvAddS(outReal, new MCvScalar(1.0), outReal, IntPtr.Zero); // 1 + Mag
        //    CvInvoke.cvLog(outReal, outReal); // log(1 + Mag)

        //    // Swap quadrants
        //    int cx = outReal.Cols / 2;
        //    int cy = outReal.Rows / 2;

        //    Matrix<float> q0 = outReal.GetSubRect(new Rectangle(0, 0, cx, cy));
        //    Matrix<float> q1 = outReal.GetSubRect(new Rectangle(cx, 0, cx, cy));
        //    Matrix<float> q2 = outReal.GetSubRect(new Rectangle(0, cy, cx, cy));
        //    Matrix<float> q3 = outReal.GetSubRect(new Rectangle(cx, cy, cx, cy));
        //    Matrix<float> tmp = new Matrix<float>(q0.Size);

        //    q0.CopyTo(tmp);
        //    q3.CopyTo(q0);
        //    tmp.CopyTo(q3);
        //    q1.CopyTo(tmp);
        //    q2.CopyTo(q1);
        //    tmp.CopyTo(q2);

        //    CvInvoke.cvNormalize(outReal, outReal, 0.0, 255.0, Emgu.CV.CvEnum.NORM_TYPE.CV_MINMAX, IntPtr.Zero);

        //    Image<Gray, float> fftImage = new Image<Gray, float>(outReal.Size);
        //    CvInvoke.cvCopy(outReal, fftImage, IntPtr.Zero);

        //    imageBox1.Image = fftImage;

        //}
        private void gaussianBlurToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Gaussian gaussian = new Gaussian();

            gaussian.setGaussianInput(_ImageInput);
            imageBox1.Image = gaussian.ApplyGaussianBlur();
        }