Как конвертировать QPixmap в матрицу - PullRequest
2 голосов
/ 10 июля 2011

Я искал такие ответы.

Я нашел этот метод в QPixmap transformed () , хотя я думаю, что он не помогает мне в поиске метода для преобразования QPixmapИзображения (в градациях серого) в матрицу ...

Спасибо за помощь =)

1 Ответ

5 голосов
/ 10 июля 2011

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;

Вы можете легко изменить матричную переменную в другой макет в памяти, если хотите.

...