Пример #1
0
 //获取转换后的图片
 public Mat GetMat()
 {
     for (int row = 0; row < Dst.Rows; row++)
     {
         for (int col = 0; col < Dst.Cols; col++)
         {
             int num_0 = 0;//黑色数量
             int num_1 = 0;
             //对源图片的划分区域遍历计算
             for (int x = 0; x < calc_range_x; x += leap_num)
             {
                 for (int y = 0; y < calc_range_y; y += leap_num)
                 {
                     //直接第一通道即可,不适合可以选择分割hsv,再计算h通道
                     int pix_value = Src.Get <byte>(row * calc_range_y + y, col * calc_range_x + x);
                     if (pix_value >= thresold_var)
                     {
                         num_1++;
                     }
                     else
                     {
                         num_0++;
                     }
                 }
             }
             if (num_1 > num_0)
             {
                 Dst.Set(row, col, (byte)255);
             }
             else
             {
                 Dst.Set(row, col, (byte)0);
             }
         }
     }
     return(Dst);
 }