Пример #1
0
        static void ParseCommandLineArgs(string[] args, out string cvtPathFilename, out string outPathFilename, out bool ignoreFileSignature)
        {
            // <filename>                    ... Commodore disk image filename with path ... fix position parameter (at first position)
            // [-i]                          ... ignore file signature
            // [-o <filename>]               ... filename with path of output file       ... option with one value (required)
            const string OPTION_OUTFILENAME    = "-o";
            const string IGNORE_FILE_SIGNATURE = "-i";

            cvtPathFilename     = "";
            outPathFilename     = "";
            ignoreFileSignature = false;

            Dictionary <String, int[]> arguments = new Dictionary <string, int[]>();

            CmdLineArgsParser.AddArgument(ref arguments, "first", true, true, true, 0);
            CmdLineArgsParser.AddArgument(ref arguments, IGNORE_FILE_SIGNATURE, false, false, false, 0);
            CmdLineArgsParser.AddArgument(ref arguments, OPTION_OUTFILENAME, false, true, true, 0);
            String firstArgValue;
            Dictionary <string, string> optionList = CmdLineArgsParser.Parse(args, arguments, out firstArgValue);

            cvtPathFilename = firstArgValue;
            if (optionList.ContainsKey(OPTION_OUTFILENAME))
            {
                outPathFilename = optionList[OPTION_OUTFILENAME];
            }
            if (optionList.ContainsKey(IGNORE_FILE_SIGNATURE))
            {
                ignoreFileSignature = true;
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            CmdLineParams cmdLineParams = new CmdLineParams();

            CmdLineArgsParser.Parse(args, cmdLineParams);

            Console.WriteLine("Input path:  {0}", cmdLineParams.InputPath);
            Console.WriteLine("Output path: {0}", cmdLineParams.OutputPath);
            Console.WriteLine("Max width:   {0}", cmdLineParams.MaxWidth);
            Console.WriteLine("Max height:  {0}", cmdLineParams.MaxHeight);
            Console.WriteLine("Force:       {0}", cmdLineParams.ForceOverride);

            if (File.Exists(cmdLineParams.InputPath))
            {
                string outputPath = cmdLineParams.OutputPath ?? CmdLineParams.GetOutputFileName(cmdLineParams.InputPath, cmdLineParams.OutputPath);
                ProcessFile(cmdLineParams.InputPath, outputPath, cmdLineParams.MaxWidth, cmdLineParams.MaxHeight, cmdLineParams.ForceOverride);
            }
            else if (Directory.Exists(cmdLineParams.InputPath))
            {
                ProcessDirectory(cmdLineParams.InputPath, cmdLineParams.OutputPath, cmdLineParams.MaxWidth, cmdLineParams.MaxHeight, cmdLineParams.ForceOverride);
            }
            else
            {
                throw new InvalidOperationException("Path access denied: " + cmdLineParams.InputPath);
            }
        }
Пример #3
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);
        }
Пример #4
0
        public static void Main(string[] args)
        {
            var parsedArgs = CmdLineArgsParser.Parse(args);

            if (!args.Any() || string.IsNullOrEmpty(parsedArgs.FileName))
            {
                UsageInformation.Print();
                return;
            }

            //If silent mode is not specified
            if (!parsedArgs.SilentModeEnabled)
            {
                Console.WriteLine(Resources.ConfirmationLine, parsedArgs.FileName);
                var keyInfo = Console.ReadKey();
                if (keyInfo.Key != ConsoleKey.Y && keyInfo.Key != ConsoleKey.Enter)
                {
                    return;
                }
            }

            if (!FileDeleter.Delete(parsedArgs.FileName))
            {
                var lastError = Marshal.GetLastWin32Error();
                Console.WriteLine();
                Console.WriteLine($"Error: {new Win32Exception(lastError).Message}");
            }
            else
            {
                ProgressTracker.Instance.Stop();
            }
        }
        static void ParseCommandLineArgs(string[] args, out string cvtPathFilename)
        {
            // <filename>                    ... Commodore disk image filename with path ... fix position parameter (at first position)
            cvtPathFilename = "";

            Dictionary <String, int[]> arguments = new Dictionary <string, int[]>();

            CmdLineArgsParser.AddArgument(ref arguments, "first", true, true, true, 0);

            String firstArgValue;
            Dictionary <string, string> optionList = CmdLineArgsParser.Parse(args, arguments, out firstArgValue);

            cvtPathFilename = firstArgValue;
        }
Пример #6
0
        public static void Main(string[] args)
        {
            ParsedCmdLineArgs parsedArgs;

            try
            {
                parsedArgs = CmdLineArgsParser.Parse(args);
            }
            catch (CmdLineArgsParser.InvalidCmdLineException e)
            {
                CmdLineArgsParser.PrintUsage(e);
                return;
            }

            try
            {
                // get the full path for confirmation
                string filename = FileDeleter.GetFullPath(parsedArgs.FileName);

                //If silent mode is not specified
                if (!parsedArgs.SilentModeEnabled)
                {
                    Console.WriteLine(Resources.ConfirmationLine, filename);
                    var keyInfo = Console.ReadKey();
                    if (keyInfo.Key != ConsoleKey.Y && keyInfo.Key != ConsoleKey.Enter)
                    {
                        return;
                    }
                }

                FileDeleter.Delete(filename, parsedArgs.BypassAcl);
            }
            catch (Exception e)
            {
                Console.WriteLine();

                if (parsedArgs.PrintStackTrace)
                {
                    Console.WriteLine($"Error: {e.ToString()}");
                }
                else
                {
                    Console.WriteLine($"Error: {e.Message}");
                }
            }
            finally
            {
                ProgressTracker.Instance.Stop();
            }
        }
Пример #7
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));
            }
        }
        static void ParseCommandLineArgs(string[] args, out string imagePathFilename, out int dirIndex, out string asciiCbmFilename, out string outPathFilename)
        {
            // <filename>                    ... Commodore disk image filename with path ... fix position parameter (at first position)
            // -i <index> | -f <fielename>   ... Commodore DOS filename in ascii         ... option with one value (-i or -f is required)
            // [-o <filename>]               ... filename with path of output file       ... option with one value (optional)
            const string OPTION_INDEX       = "-i";
            const string OPTION_FILENAME    = "-f";
            const string OPTION_OUTFILENAME = "-o";

            imagePathFilename = "";
            dirIndex          = 0;
            asciiCbmFilename  = "";
            outPathFilename   = "";

            Dictionary <String, int[]> arguments = new Dictionary <string, int[]>();

            CmdLineArgsParser.AddArgument(ref arguments, "first", true, true, true, 0);
            CmdLineArgsParser.AddArgument(ref arguments, OPTION_INDEX, false, false, true, 1);
            CmdLineArgsParser.AddArgument(ref arguments, OPTION_FILENAME, false, false, true, 1);
            CmdLineArgsParser.AddArgument(ref arguments, OPTION_OUTFILENAME, false, false, true, 0);
            String firstArgValue;
            Dictionary <string, string> optionList = CmdLineArgsParser.Parse(args, arguments, out firstArgValue);

            imagePathFilename = firstArgValue;
            if (optionList.ContainsKey(OPTION_INDEX))
            {
                try
                {
                    dirIndex = Int32.Parse(optionList[OPTION_INDEX]);
                }
                catch
                {
                    throw new Exception(String.Format("The Option {0} requires a numeric value!", OPTION_INDEX));
                }
            }
            if (optionList.ContainsKey(OPTION_FILENAME))
            {
                asciiCbmFilename = optionList[OPTION_FILENAME];
            }
            if (optionList.ContainsKey(OPTION_OUTFILENAME))
            {
                outPathFilename = optionList[OPTION_OUTFILENAME];
            }
        }