コード例 #1
0
 public void SetXYpoint(XYpoint NewXYpoint)
 {
     this.point_X = NewXYpoint.GetXValue();
     this.point_Y = NewXYpoint.GetYValue();
 }
コード例 #2
0
            public Mat ImageContourMethod(Mat InputMat)
            {
                Mat ReturnMat = new Mat(InputMat.Rows, InputMat.Cols, DepthType.Cv8U, 1);

                //  Initialize ReturnMat
                for (int row_loop = 0; row_loop < InputMat.Rows; row_loop++)
                {
                    for (int col_loop = 0; col_loop < InputMat.Cols; col_loop++)
                    {
                        var value = InputMat.GetValue(row_loop, col_loop);
                        ReturnMat.SetValue(row_loop, col_loop, (byte)0);
                    }
                }

                XYpoint OperationPoint = new XYpoint(0, 0);
                int     loop_num_x = 0, loop_num_y = 0;

                //	Find X1, Y1
                for (loop_num_y = 0; loop_num_y < InputMat.Rows; loop_num_y++)      //	以for迴圈依序掃描圖像像素
                {                                                                   //	進入for迴圈
                    for (loop_num_x = 0; loop_num_x < InputMat.Cols; loop_num_x++)  //	以for迴圈依序掃描圖像像素
                    {
                        byte pixel_value = InputMat.GetValue(loop_num_y, loop_num_x);
                        if (pixel_value == BLACK)
                        {
                            OperationPoint.SetXYpoint(loop_num_x, loop_num_y);
                        }
                    }
                }                                                                   //	結束for迴圈
                Console.WriteLine("X1 = " + OperationPoint.GetXValue().ToString());
                Console.WriteLine("Y1 = " + OperationPoint.GetYValue().ToString());

                List <XYpoint> MarkedPixels = new List <XYpoint>()
                {
                };

                MarkedPixels.Add(new XYpoint(OperationPoint));

                int CaseNumber = 0;                                                 //	上一格編號

                while (true)
                {
                    ReturnMat.SetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue(), (byte)MarkValue);
                    switch (CaseNumber)
                    {
                    case (0):
                    {
                        if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 5;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 6;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 7;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, (int)OperationPoint.GetYValue());
                            CaseNumber = 8;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 1;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 2;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 3;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, (int)OperationPoint.GetYValue());
                            CaseNumber = 4;
                        }
                        else
                        {
                            CaseNumber = 9;
                        }
                        break;
                    }

                    case (1):
                    {
                        if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint(((int)(OperationPoint.GetXValue())), ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 6;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 7;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, (int)OperationPoint.GetYValue());
                            CaseNumber = 8;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 1;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint(OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 2;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 3;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, (int)OperationPoint.GetYValue());
                            CaseNumber = 4;
                        }
                        else
                        {
                            CaseNumber = 9;
                        }
                        break;
                    }

                    case (2):
                    {
                        if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 7;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, (int)OperationPoint.GetYValue());
                            CaseNumber = 8;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 1;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 2;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 3;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, (int)OperationPoint.GetYValue());
                            CaseNumber = 4;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 5;
                        }
                        else
                        {
                            CaseNumber = 9;
                        }
                        break;
                    }

                    case (3):
                    {
                        if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, (int)OperationPoint.GetYValue());
                            CaseNumber = 8;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 1;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 2;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 3;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, (int)OperationPoint.GetYValue());
                            CaseNumber = 4;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 5;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 6;
                        }
                        else
                        {
                            CaseNumber = 9;
                        }
                        break;
                    }

                    case (4):
                    {
                        if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 1;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 2;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 3;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue()));
                            CaseNumber = 4;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 5;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 6;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 7;
                        }
                        else
                        {
                            CaseNumber = 9;
                        }
                        break;
                    }

                    case (5):
                    {
                        if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 2;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 3;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue()));
                            CaseNumber = 4;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 5;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 6;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 7;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue()));
                            CaseNumber = 8;
                        }
                        else
                        {
                            CaseNumber = 9;
                        }
                        break;
                    }

                    case (6):
                    {
                        if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 3;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue()));
                            CaseNumber = 4;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 5;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 6;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 7;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue()));
                            CaseNumber = 8;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 1;
                        }
                        else
                        {
                            CaseNumber = 9;
                        }
                        break;
                    }

                    case (7):
                    {
                        if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue()));
                            CaseNumber = 4;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 5;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 6;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 7;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue()));
                            CaseNumber = 8;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 1;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 2;
                        }
                        else
                        {
                            CaseNumber = 9;
                        }
                        break;
                    }

                    case (8):
                    {
                        if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 5;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 6;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() + 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() + 1));
                            CaseNumber = 7;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue(), (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue()));
                            CaseNumber = 8;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() + 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() + 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 1;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue()) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue(), ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 2;
                        }
                        else if (InputMat.GetValue((int)OperationPoint.GetYValue() - 1, (int)OperationPoint.GetXValue() - 1) == BLACK)
                        {
                            OperationPoint.SetXYpoint((int)OperationPoint.GetXValue() - 1, ((int)OperationPoint.GetYValue() - 1));
                            CaseNumber = 3;
                        }
                        else
                        {
                            CaseNumber = 9;
                        }
                        break;
                    }

                    case (9):                                                                   //  Not complete
                    {
                        MarkedPixels.Clear();                                                   //  Clear points
                                                                                                //***Clear image data***
                        for (int row_loop = 0; row_loop < InputMat.Rows; row_loop++)
                        {
                            for (int col_loop = 0; col_loop < InputMat.Cols; col_loop++)
                            {
                                ReturnMat.SetValue(row_loop, col_loop, (byte)0);
                            }
                        }
                        return(ReturnMat);
                    }
                    }
                    Console.WriteLine("(" + OperationPoint.GetXValue().ToString() + "," + OperationPoint.GetYValue().ToString() + ")");
                    Console.WriteLine("CaseNumber = " + CaseNumber.ToString());
                    try
                    {
                        bool PointAlreadExist = false;
                        foreach (XYpoint item in MarkedPixels)
                        {
                            if ((item.GetXValue() == (int)OperationPoint.GetXValue()) && (item.GetYValue() == (int)OperationPoint.GetYValue()))
                            {
                                PointAlreadExist = true;
                            }
                        }
                        if (PointAlreadExist == false)
                        {
                            MarkedPixels.Add(new XYpoint(OperationPoint));
                        }
                        else
                        {
                            return(ReturnMat);
                        }
                    }
                    catch (Exception)
                    {
                        throw;
                    }
                }
            }