我一直在寻找这样的答案。
我在QPixmap transformed()中找到了这个方法,虽然我认为这对我搜索将QPixmap图像(灰度)转换为矩阵的方法没有帮助...
感谢帮助=)
答案 0 :(得分:5)
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;
如果您愿意,可以轻松地将矩阵变量更改为内存中的其他布局。