0. 写在前面
Qt+opencv打开视频文件和图片文件的判断程序代码
void MainWindow::on_pBtn_OpenFile_clicked()
{
Mat res;
//打开图片文件,选择图片
QString filename = QFileDialog::getOpenFileName(this,tr("Open File"),QDir::homePath(),tr("所有视频文件(*.avi *.mp4 *.h624 *.mkv)\n"
"所有图片文件(*.jpg *.bmp *.png)"));
//先判断处理的是视频还是图片
QFileInfo fileInfo = QFileInfo(filename); //包含路径的文件全名
QString fileSuffix = fileInfo.suffix(); //获取文件名最后的后缀
//获取的是视频文件
if((fileSuffix == "avi") ||
(fileSuffix == "mp4") ||
(fileSuffix == "h624") ||
(fileSuffix == "mkv"))
{
qDebug() << "File Suffix is:" << fileSuffix;
VideoCapture cap(filename);
if(!cap.isOpened())
{
qDebug() << "Open Video file failed!" << fileSuffix;
return;
}
}
else //图片文件
{
qDebug() << "File Suffix is:" << fileSuffix;
Mat img = imread(filename.toStdString());
if(!img.data)
{
qDebug() << "Image read failed!";
return;
}
res = img;
}
matToLabelShow(ui->LB_ShowLabel,res);
}