我正在尝试对灰度图像中的所有像素进行排序。其类型为:
Image<Gray, Byte>
我也是EmguCV的新手,以前从未使用过它,但是据我了解,最好使用内置的EmguCV工具和功能对图像执行操作。与其直接使用Data
我的图像属性,我不希望使用内置的EmguCV工具对其进行排序。
所以我的问题是:是否有一种方法可以使用内置的EmguCV工具按照图像中的所有像素的强度对其排序?如果没有,我该如何对像素进行排序?
输出结果应该在左上方包含最高值,在右下方包含最低值。
答案 0 :(得分:0)
EmguCV没有您想要的任何功能。您可以使用Array.sort()
类中的Array
函数对所有像素进行排序。
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;