2

我一直在寻找这样的答案。

我在 QPixmap transform()中找到了这个方法,尽管我认为它对我寻求将 QPixmap 图像(灰度)转换为矩阵的方法没有帮助......

感谢您的帮助 =)

4

1 回答 1

5

函数中的 专门用于扭曲QMatrix图像。QPixmap::transformed()

我认为您想要做的是将 a 中的值读取QPixmap到某个矩阵中。您没有指定灰度的含义,但我认为qGray(QRgb)如果图像还不是灰度就足够了。

我认为基本上这样的东西就是你需要的:

QImage myimage = mypixmap.toImage();    // convert your QPixmap to QImage
int width = myimage.width();
int height = myimage.height();
int *matrix = new int [width*height];   // store 2-D data in 1-D vector

for(int j = 0; j < height; j++)
{
  for(int i = 0; i < width; i++)
  {
    matrix[j*width+i] = qGray(myimage.pixel(i,j));
  }
}

// ... do stuff ...

delete [] matrix;

如果您愿意,您可以轻松地将矩阵变量更改为内存中的其他布局。

于 2011-07-10T14:20:37.663 回答