Esempio n. 1
0
        public void TestCudaRemap()
        {
            if (!CudaInvoke.HasCuda)
            {
                return;
            }
            Image <Gray, float> xmap = new Image <Gray, float>(2, 2);

            xmap.Data[0, 0, 0] = 0; xmap.Data[0, 1, 0] = 0;
            xmap.Data[1, 0, 0] = 1; xmap.Data[1, 1, 0] = 1;
            Image <Gray, float> ymap = new Image <Gray, float>(2, 2);

            ymap.Data[0, 0, 0] = 0; ymap.Data[0, 1, 0] = 1;
            ymap.Data[1, 0, 0] = 0; ymap.Data[1, 1, 0] = 1;

            Image <Gray, Byte> image = new Image <Gray, byte>(2, 2);

            image.SetRandNormal(new MCvScalar(), new MCvScalar(255));

            using (CudaImage <Gray, Byte> CudaImage = new CudaImage <Gray, byte>(image))
                using (CudaImage <Gray, float> xCudaImage = new CudaImage <Gray, float>(xmap))
                    using (CudaImage <Gray, float> yCudaImage = new CudaImage <Gray, float>(ymap))
                        using (CudaImage <Gray, Byte> remapedImage = new CudaImage <Gray, byte>(CudaImage.Size))
                        {
                            CudaInvoke.Remap(CudaImage, remapedImage, xCudaImage, yCudaImage, CvEnum.Inter.Cubic, CvEnum.BorderType.Default, new MCvScalar(), null);
                        }
        }