2

私はそのような答えを探していました。

私はこのメソッドを QPixmap transform()で見つけましたが、QPixmap 画像 (グレースケール) をマトリックスに変換する方法を探すのには役立たないと思います...

助けてくれてありがとう =)

4

1 に答える 1

5

関数のはQMatrix、特に画像をワープするためのものです。QPixmap::transformed()

あなたがしたいことは、 aQPixmapからいくつかの行列に値を読み込むことだと思います。グレースケールの意味を指定していませんが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 に答える