QMatrix
в функции QPixmap::transformed()
специально для деформации изображений.
Я думаю, вы хотите прочитать значения из 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;
Вы можете легко изменить матричную переменную в другой макет в памяти, если хотите.