Example #1
0
        public void TestCudaPyrLKOpticalFlow()
        {
            if (!CudaInvoke.HasCuda)
            {
                return;
            }
            Image <Gray, Byte> prevImg, currImg;

            AutoTestVarious.OpticalFlowImage(out prevImg, out currImg);
            Mat flow = new Mat();
            CudaDensePyrLKOpticalFlow opticalflow = new CudaDensePyrLKOpticalFlow(new Size(21, 21), 3, 30, false);

            using (CudaImage <Gray, Byte> prevGpu = new CudaImage <Gray, byte>(prevImg))
                using (CudaImage <Gray, byte> currGpu = new CudaImage <Gray, byte>(currImg))
                    using (GpuMat flowGpu = new GpuMat())
                    {
                        opticalflow.Calc(prevGpu, currGpu, flowGpu);

                        flowGpu.Download(flow);
                    }
        }
Example #2
0
        public void TestCudaBroxOpticalFlow()
        {
            if (!CudaInvoke.HasCuda)
            {
                return;
            }
            Image <Gray, Byte> prevImg, currImg;

            AutoTestVarious.OpticalFlowImage(out prevImg, out currImg);
            Mat flow = new Mat();
            CudaBroxOpticalFlow opticalflow = new CudaBroxOpticalFlow();

            using (CudaImage <Gray, float> prevGpu = new CudaImage <Gray, float>(prevImg.Convert <Gray, float>()))
                using (CudaImage <Gray, float> currGpu = new CudaImage <Gray, float>(currImg.Convert <Gray, float>()))
                    using (GpuMat flowGpu = new GpuMat())
                    {
                        opticalflow.Calc(prevGpu, currGpu, flowGpu);

                        flowGpu.Download(flow);
                    }
        }
Example #3
0
        public void TestCudaPyrLKOpticalFlow()
        {
            if (!CudaInvoke.HasCuda)
            {
                return;
            }
            Image <Gray, Byte> prevImg, currImg;

            AutoTestVarious.OpticalFlowImage(out prevImg, out currImg);
            Image <Gray, Single> flowx = new Image <Gray, float>(prevImg.Size);
            Image <Gray, Single> flowy = new Image <Gray, float>(prevImg.Size);
            CudaPyrLKOpticalFlow flow  = new CudaPyrLKOpticalFlow(new Size(21, 21), 3, 30, false);

            using (CudaImage <Gray, Byte> prevGpu = new CudaImage <Gray, byte>(prevImg))
                using (CudaImage <Gray, byte> currGpu = new CudaImage <Gray, byte>(currImg))
                    using (CudaImage <Gray, float> flowxGpu = new CudaImage <Gray, float>(prevGpu.Size))
                        using (CudaImage <Gray, float> flowyGpu = new CudaImage <Gray, float>(prevGpu.Size))
                        {
                            flow.Dense(prevGpu, currGpu, flowxGpu, flowyGpu);
                            flowxGpu.Download(flowx);
                            flowyGpu.Download(flowy);
                        }
        }