我是c ++的新手。我用它来进行图像处理。我的基本想法是加载图像并将像素值或强度存储到矩阵或数组中,以便我可以对它们执行进一步的操作。
所以,到目前为止我所做的是
QPixmap pixmap("lena.bmp");
pixmap = pixmap.copy(512,512,128,128);
pixmap = pixmap.scaled(32,32);
QImage image = pixmap.toImage();
QRgb col;
int g;
int width = pixmap.width();
int height = pixmap.height();
matrix<double> m(width,height);
for (int j = 0; j < m.size2(); j++)
{
for (int i = 0; i < m.size1(); i++)
{
col = image.pixel(i,j);
g = qGray(col);
image.setPixel(i,j,qRgb(g,g,g));
m(i,j) = (image.pixel(i,j));
}
}
例如,我在Qt中使用Qpixmap读取图像并使用boost生成带有数据的矩阵。
但是有没有其他更简单的方法来读取图像并将其存储在矩阵中?并执行操作,然后将新的操纵矩阵显示为图像?
答案 0 :(得分:0)
您可以使用OpenCV库,默认情况下图像表示为矩阵。 OpenCV非常适合图像处理,并且具有许多功能。您可以在此处获取在OpenCV中将图像加载到矩阵的示例:http://docs.opencv.org/doc/tutorials/introduction/display_image/display_image.html