【问题标题】:Sorting pixels of a gray-scale image in EmguCV by intensity在 EmguCV 中按强度对灰度图像的像素进行排序
【发布时间】:2018-11-08 12:50:44
【问题描述】:

我正在尝试对灰度图像中的所有像素进行排序。它的类型是:

Image<Gray, Byte>

我也是 EmguCV 的新手,以前从未使用过,但据我了解,最好使用内置的 EmguCV 工具和函数对图像执行操作。我不想直接使用我的图像的Data 属性,而是喜欢使用内置的 EmguCV 工具对其进行排序。

所以我的问题是:有没有办法使用内置 EmguCV 工具按强度对图像中的所有像素进行排序?如果没有,那我将如何对像素进行排序?

输出结果应包含左上角的最高值和右下角的最低值。

【问题讨论】:

    标签: c# emgucv


    【解决方案1】:

    EmguCV 没有任何你想要的功能。您可以使用Array 类中的Array.sort() func 对所有像素进行排序。

    Image<Gray, byte> img = new Image<Gray, byte>("1.jpg");
    
    byte[] b = img.Bytes;
    Array.Sort(b);
    
    byte[, ,] b_img = new byte[img.Width, img.Height, 1];
    
    for (int i = 0; i < img.Height; i++)
    {
         for (int j = 0; j < img.Width; j++)
         {
              b_img[j, i, 0] = b[j + i * img.Width];
         }
    }
    
    Image<Gray, byte> img2 = new Image<Gray, byte>(b_img);
    
    pictureBox1.Image = img.Bitmap;
    pictureBox2.Image = img2.Bitmap;
    

    【讨论】:

      猜你喜欢
      • 2018-02-21
      • 1970-01-01
      • 1970-01-01
      • 2015-08-31
      • 2012-12-12
      • 2015-02-14
      • 1970-01-01
      • 2013-10-14
      • 2014-05-30
      相关资源
      最近更新 更多