QT一般要用到文件选操作,以打开图片为例,以下为部分代码:
QImage openImage()
{
QString filename = QFileDialog::getOpenFileName(this,
tr("choose a pic"),
"",
tr("Images (*.png *.bmp *.jpg *.tif *.GIF *.jpeg)"));
if (filename.isEmpty())
{
return;
}
QImage image= QImage(filename);
return image;
//可用opencv作为转换
Mat imageread;
imageread = imread(filename.toLatin1().data(), 1);
return Mat2QImage(imageread);
}
QImage Mat2QImage(const cv::Mat& mat)
{
// 8-bits unsigned, NO. OF CHANNELS = 1
if (mat.type() == CV_8UC1)
{
QImage image(mat.cols, mat.rows, QImage::Format_Indexed8);
image.setColorCount(256);
for (int i = 0; i < 256; i++)
{
image.setColor(i, qRgb(i, i, i));
}
// Copy input Mat
uchar *pSrc = mat.data;
for (int row = 0; row < mat.rows; row++)
{
uchar *pDest = image.s