Beispiel #1
0
        private static void Master()
        {
            bool choosePictureAlive = true;

            while (choosePictureAlive)
            {
                bool chooseFilterAlive = true;

                Console.Write("Path to picture: ");
                string path = Console.ReadLine();

                PPMImage image = PPMOperations.ReadPPMImageFromFile(path);
                PPMOperations.Broadcast(image);

                while (chooseFilterAlive)
                {
                    //add filter in menu

                    Console.Write("Choose filter: \n\t'1'-Regular\n\t'2'-Grayscale" +
                                  "\n\t'3'-Blur\n\t'4'-Find Edges" +
                                  "\n\t'5'-Choose different picture\n\t'0'-Exit\nFilter: ");
                    string filter = Console.ReadLine();
                    switch (filter)
                    {
                    case "1":
                    case "2":
                        PPMOperations.Broadcast(filter);
                        GenerateFullImage(image);
                        break;

                    case "3":
                    case "4":
                        PPMOperations.Broadcast(filter);
                        GenerateFilteredImage(image, filter);
                        break;

                    case "5":
                        PPMOperations.Broadcast(filter);
                        chooseFilterAlive = false;
                        break;

                    case "0":
                        PPMOperations.Broadcast(filter);
                        chooseFilterAlive  = false;
                        choosePictureAlive = false;
                        break;

                    default:
                        Console.WriteLine("Invalid command.\n");
                        break;
                    }
                }
            }
        }
Beispiel #2
0
        private static void Worker()
        {
            bool choosePictureAlive = true;

            while (choosePictureAlive)
            {
                bool chooseFilterAlive = true;

                PPMImage image = Communicator.world.Receive <PPMImage>(0, 0);

                //add filter in menu

                while (chooseFilterAlive)
                {
                    string filter = Communicator.world.Receive <string>(0, 0);
                    switch (filter)
                    {
                    case "1":
                        PPMOperations.GenerateRegularImage(image);
                        break;

                    case "2":
                        PPMOperations.GenerateGrayscaleImage(image);
                        break;

                    case "3":
                        PPMOperations.GenerateBlurImage(image);
                        break;

                    case "4":
                        PPMOperations.GenerateEdgeImage(image);
                        break;

                    case "5":
                        chooseFilterAlive = false;
                        break;

                    case "0":
                        chooseFilterAlive  = false;
                        choosePictureAlive = false;
                        break;
                    }
                }
            }
        }
Beispiel #3
0
        private static void GenerateFilteredImage(PPMImage image, string filter)
        {
            //add if statement for the new filter

            if (filter == "3")
            {
                double[,] filterMatrix =
                {
                    { 1, 0, 0, 0, 0, 0, 0, 0, 0 },
                    { 0, 1, 0, 0, 0, 0, 0, 0, 0 },
                    { 0, 0, 1, 0, 0, 0, 0, 0, 0 },
                    { 0, 0, 0, 1, 0, 0, 0, 0, 0 },
                    { 0, 0, 0, 0, 1, 0, 0, 0, 0 },
                    { 0, 0, 0, 0, 0, 1, 0, 0, 0 },
                    { 0, 0, 0, 0, 0, 0, 1, 0, 0 },
                    { 0, 0, 0, 0, 0, 0, 0, 1, 0 },
                    { 0, 0, 0, 0, 0, 0, 0, 0, 1 },
                };

                double filterFactor = 1.0 / 9.0;
                double filterBias   = 0.0;

                PPMOperations.GenerateFilteredImage(image, filterMatrix, filterFactor, filterBias, "after.ppm");
            }
            else if (filter == "4")
            {
                double[,] filterMatrix =
                {
                    { 0, 0, -1, 0, 0 },
                    { 0, 0, -1, 0, 0 },
                    { 0, 0,  2, 0, 0 },
                    { 0, 0,  0, 0, 0 },
                    { 0, 0,  0, 0, 0 },
                };

                double filterFactor = 1.0;
                double filterBias   = 0.0;

                PPMOperations.GenerateFilteredImage(image, filterMatrix, filterFactor, filterBias, "after.ppm");
            }
        }
Beispiel #4
0
 private static void GenerateFullImage(PPMImage image)
 {
     PPMOperations.GenerateImage(image, "after.ppm");
 }