繁体   English   中英

将图像读取到数组或矩阵

[英]Reading image to an array or matrix

我是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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM