Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            CmdLineParams cmdLineParams = new CmdLineParams();

            CmdLineArgsParser.Parse(args, cmdLineParams);

            Console.WriteLine("Input folder:  {0}", cmdLineParams.InputFolder);
            Console.WriteLine("Output file : {0}", cmdLineParams.OutputFile);

            string[] inputImages = Directory.GetFiles(cmdLineParams.InputFolder).Where(f => IMAGE_EXTENSIONS.Contains(Path.GetExtension(f).ToLower())).ToArray();

            LensParams lensParams = null;

            LensCorrection.Calibrate(inputImages, out lensParams);

            Console.WriteLine("Lens correction matrix (K):");
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.Write("{0:0000.000}; ", lensParams.K[i, j]);
                }
                Console.WriteLine(" ");
            }

            Console.WriteLine("Distorsion coefficients (D):");
            for (int i = 0; i < 4; i++)
            {
                Console.Write("{0:0.000}; ", lensParams.D[i, 0]);
            }
            Console.WriteLine(" ");

            lensParams.SaveToJsonFile(cmdLineParams.OutputFile);
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            CmdLineParams cmdLineParams = new CmdLineParams();

            CmdLineArgsParser.Parse(args, cmdLineParams);

            LensParams lensParams = LensParams.ReadFromJson(cmdLineParams.LensParamsJsonPath);

            Console.WriteLine("Lens correction matrix (K):");
            for (int i = 0; i < 3; i++)
            {
                for (int j = 0; j < 3; j++)
                {
                    Console.Write("{0:0000.000}; ", lensParams.K[i, j]);
                }
                Console.WriteLine(" ");
            }

            Console.WriteLine("Distorsion coefficients (D):");
            for (int i = 0; i < 4; i++)
            {
                Console.Write("{0:0.000}; ", lensParams.D[i, 0]);
            }
            Console.WriteLine(" ");

            if (!Directory.Exists(cmdLineParams.OutputFolder))
            {
                Console.WriteLine("Create output folder: {0}", cmdLineParams.OutputFolder);
                Directory.CreateDirectory(cmdLineParams.OutputFolder);
            }

            string[] inputImages = Directory.GetFiles(cmdLineParams.InputFolder).Where(f => IMAGE_EXTENSIONS.Contains(Path.GetExtension(f).ToLower())).ToArray();

            foreach (string imgPath in inputImages /*.Take(1).ToArray()*/)
            {
                string fileName = Path.GetFileName(imgPath);
                Console.WriteLine("Image processing {0}...", fileName);
                Mat image = CvInvoke.Imread(imgPath);
                //CvInvoke.Imshow("before", image);
                //CvInvoke.WaitKey(0);
                Mat outputImg = LensCorrection.Correct(image, lensParams);
                //CvInvoke.Imshow("after", outputImg);
                //CvInvoke.WaitKey(0);
                outputImg.Save(Path.Combine(cmdLineParams.OutputFolder, fileName));
            }
        }