将图像读入数组或矩阵

Reading image to an array or matrix

本文关键字:数组 图像      更新时间:2023-10-16

我是一个c++新手。我用它来处理图像。我的基本想法是加载图像并将像素值或强度存储到矩阵或数组中,以便我可以对它们进行进一步的操作。

那么,到目前为止我所做的就是

  QPixmap pixmap("lena.bmp");
  pixmap = pixmap.copy(512,512,128,128);
  pixmap = pixmap.scaled(32,32);
  QImage image = pixmap.toImage();
  QRgb col;
  int g;
  int width = pixmap.width();
  int height = pixmap.height();
  matrix<double> m(width,height);
for (int j = 0; j < m.size2(); j++)
{
    for (int i = 0; i < m.size1(); i++)
    {
        col = image.pixel(i,j);
        g = qGray(col);
        image.setPixel(i,j,qRgb(g,g,g));
        m(i,j) = (image.pixel(i,j));
    }
}

例如,我在Qt中使用Qpixmap读取图像,并使用boost生成数据矩阵。

但是有没有其他更简单的方法来读取图像并将其存储在矩阵中?然后执行操作,然后将新的操作矩阵显示为图像?

您可以使用OpenCV库,其中图像默认表示为矩阵。OpenCV在图像处理方面非常流行,并且有许多特性。您可以在这里获取一个在OpenCV中将图像加载到矩阵的示例:http://docs.opencv.org/doc/tutorials/introduction/display_image/display_image.html