Exemplo n.º 1
0
 //--------------------------------------------------------------------------------------
 private void tsbCleanAccurateDefault_Click(object sender, EventArgs e)
 {
     try
     {
         Bitmap lInBmp = pbBlackWhite.Image as Bitmap;
         if (lInBmp == null)
         {
             MessageBox.Show("Нет картинки");
             return;
         }
         byte[][] lMatrix = CBlackWhiteExplorer.BitmapToBinaryMatrix(lInBmp);
         if (cbClearColor.SelectedIndex < 3)
         {
             CBlackWhiteExplorer.RemoveIsolatePointAccurate(lMatrix, (byte)cbClearColor.SelectedIndex);
         }
         else if (cbClearColor.SelectedIndex == 3)
         {
             CBlackWhiteExplorer.RemoveIsolatePointAccurate(lMatrix, 0);
             CBlackWhiteExplorer.RemoveIsolatePointAccurate(lMatrix, 1);
         }
         else
         {
             CBlackWhiteExplorer.RemoveIsolatePointAccurate(lMatrix, 1);
             CBlackWhiteExplorer.RemoveIsolatePointAccurate(lMatrix, 0);
         }
         Bitmap lNewBmp = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrix);
         pbAfterCleanExactDefault.Image = lNewBmp;
     }
     catch (Exception ee)
     {
         MessageBox.Show(ee.ToString());
     }
 }
Exemplo n.º 2
0
        //--------------------------------------------------------------------------------------
        private void toolStripButton1_Click(object sender, EventArgs e)
        {
            if (pbPicture1.Image == null || pbPicture2.Image == null || pbPicture3.Image == null)
            {
                return;
            }

            CBlackWhiteExplorer lBlackWhiteExplorer = new CBlackWhiteExplorer();

            byte[][]   lMatrix1             = CBlackWhiteExplorer.BitmapToBinaryMatrix(pbPicture1.Image as Bitmap);
            byte[][]   lMatrix2             = CBlackWhiteExplorer.BitmapToBinaryMatrix(pbPicture2.Image as Bitmap);
            byte[][]   lMatrix3             = CBlackWhiteExplorer.BitmapToBinaryMatrix(pbPicture3.Image as Bitmap);
            byte[][][] lMatrixs             = lBlackWhiteExplorer.Compare3BWMatrix(lMatrix1, lMatrix2, lMatrix3, byte.Parse(tcbValColor.SelectedItem.ToString()));
            Bitmap     lPictureIntersection = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrixs[0]);
            Bitmap     lPictureUnion        = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrixs[1]);
            Bitmap     lPictureUnionDiffer  = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrixs[2]);
            Bitmap     lPicture001          = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrixs[3]);
            Bitmap     lPicture010          = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrixs[4]);
            Bitmap     lPicture100          = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrixs[5]);
            Bitmap     lPicture011          = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrixs[6]);
            Bitmap     lPicture101          = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrixs[7]);
            Bitmap     lPicture110          = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrixs[8]);

            pbIntersection.Image = lPictureIntersection;
            pbUnion.Image        = lPictureUnion;
            pbUnionDiffer.Image  = lPictureUnionDiffer;
            pb001.Image          = lPicture001;
            pb010.Image          = lPicture010;
            pb100.Image          = lPicture100;
            pb011.Image          = lPicture011;
            pb101.Image          = lPicture101;
            pb110.Image          = lPicture110;
        }
Exemplo n.º 3
0
        //--------------------------------------------------------------------------------------
        private void tsbExec_Click(object sender, EventArgs e)
        {
            if (pbPicture1.Image == null || pbPicture2.Image == null)
            {
                return;
            }

            CBlackWhiteExplorer lBlackWhiteExplorer = new CBlackWhiteExplorer();

            byte[][]   lMatrix1             = CBlackWhiteExplorer.BitmapToBinaryMatrix(pbPicture1.Image as Bitmap);
            byte[][]   lMatrix2             = CBlackWhiteExplorer.BitmapToBinaryMatrix(pbPicture2.Image as Bitmap);
            byte[][][] lMatrixs             = lBlackWhiteExplorer.Compare2BWMatrix(lMatrix1, lMatrix2, byte.Parse(tcbValColor.SelectedItem.ToString()));
            Bitmap     lPictureIntersection = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrixs[1]);
            Bitmap     lPictureUnion        = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrixs[0]);
            Bitmap     lPicture1_2          = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrixs[2]);
            Bitmap     lPicture2_1          = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrixs[3]);
            Bitmap     lPictureUnionDiffer  = CBlackWhiteExplorer.BinaryMatrixToBitmap(lMatrixs[4]);

            pbIntersection.Image = lPictureIntersection;
            pbUnion.Image        = lPictureUnion;
            pbUnionDiffer.Image  = lPictureUnionDiffer;
            pb1_2.Image          = lPicture1_2;
            pb2_1.Image          = lPicture2_1;
        }
Exemplo n.º 4
0
 //--------------------------------------------------------------------------------------
 /// <summary>
 /// удалить маленькие области из картинки (предварительно преобразовав ее в 0.1 матрицу)
 /// </summary>
 /// <param name="pImage">картинка для преобразования</param>
 /// <param name="pWhat">цвет рисунка</param>
 /// <param name="pThreshold">предельный размер удаляемых</param>
 /// <returns>результирующая матрица очищенная от маленьких связанных областей</returns>
 public byte[][] RemoveSmallRegion(Bitmap pImage, byte pWhat, int pThreshold)
 {
     byte[][] lMatrix = CBlackWhiteExplorer.BitmapToBinaryMatrix(pImage);
     return(RemoveSmallRegion(lMatrix, pWhat, pThreshold));
 }
Exemplo n.º 5
0
 //--------------------------------------------------------------------------------------
 /// <summary>
 /// разбить рисунок на отдельные куски в виде списка матриц по методу единной матрицы
 /// </summary>
 /// <param name="pImage"></param>
 /// <param name="pNumberColor"></param>
 /// <returns></returns>
 public int[][] SplitByOneMatrix(Bitmap pImage, out int pNumberColor)
 {
     byte[][] lMatrix = CBlackWhiteExplorer.BitmapToBinaryMatrix(pImage);
     return(SplitByOneMatrix(lMatrix, out pNumberColor));
 }
Exemplo n.º 6
0
 //--------------------------------------------------------------------------------------
 /// <summary>
 /// разбить рисунок на отдельные куски в виде списка матриц по методу матриц
 /// </summary>
 /// <param name="pImage"></param>
 /// <param name="pWhat"></param>
 /// <returns></returns>
 public List <byte[][]> SplitByMatrix(Bitmap pImage, byte pWhat)
 {
     byte[][] lMatrix = CBlackWhiteExplorer.BitmapToBinaryMatrix(pImage);
     return(SplitByMatrix(lMatrix, pWhat));
 }
Exemplo n.º 7
0
 //--------------------------------------------------------------------------------------
 /// <summary>
 /// разбить рисунок на отдельные куски в виде списка матриц по методу множеств
 /// </summary>
 /// <param name="pImage"></param>
 /// <returns></returns>
 public List <byte[][]> SplitBySet(Bitmap pImage)
 {
     byte[][] lMatrix = CBlackWhiteExplorer.BitmapToBinaryMatrix(pImage);
     return(SplitBySet(lMatrix));
 }