求助大神:vs+opencv+qt项目编译出错

yibin9418 2017-10-17 04:06:45
#include "ab2.h"
#include"cv.h"
#include "highgui.h"
#include<QtMmultimedia>
#include <QVideoWidget>
#include <iostream>
#include "opencv2/opencv.hpp"
#include <opencv2/core/core.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <fstream>
#include <math.h>
#include <QString>
#define M_PI 3.14159
#define M_PI_2 1.57
#define CV_CAP_PROP_FRAME_COUNT
#define CV_CAP_PROP_FRAME_WIDTH
#define CV_CAP_PROP_FRAME_HEIGHT
#define CV_CAP_PROP_FPS



using namespace cv;
using namespace std;


ab2::ab2(QWidget *parent)
: QWidget(parent)
{

ui.setupUi(this);
//线程返回值进行GUI上图片修改
//QObject::connect(myThread, SIGNAL(changeVideoPicture(QString)), this, SLOT(changeVideo(QString)));
//QObject::connect(myThread, SIGNAL(changeKmeansPicture(QString)), this, SLOT(changeKmeans(QString)));
/*timer = new QTimer(this);
timer->setInterval(40);*/
myThread = new Thread(this);
QObject::connect(myThread, &Thread::done, this, &ab2::changePicture);
//index = 0;*/
}

ab2::~ab2()
{

}

/*void testWidget::sShowInfo() {
//QObject::connect(rawData, SIGNAL(clicked()), testWidgetClass, SLOT(sShowInfo()));

VideoCapture cap;
cap.open("E:/28-prp/vids/pos_005.avi");
if (!cap.isOpened())
{
cout << "fail to open." << endl;
//return -1;
/*QPixmap pix;
pix.load("C:/Users/zutianluo/Documents/Tencent Files/1249396963/FileRecv/MobileFile/pic_of862_lightflow.jpg");

pix = pix.scaled(161, 161, Qt::KeepAspectRatio);
//QImage *image = new QImage("C:/Users/zutianluo/Desktop/1.png");
ui.kmeansImage->setPixmap(pix);
ui.kmeansImage->show()
}
else {
//初始化视频信息
double totalFrameNumber = cap.get(CV_CAP_PROP_FRAME_COUNT);
double videowidth = cap.get(CV_CAP_PROP_FRAME_WIDTH);
double videoheight = cap.get(CV_CAP_PROP_FRAME_HEIGHT);
double fps = cap.get(CV_CAP_PROP_FPS);

QString newFrame;
ui.frame->setText(newFrame.setNum(totalFrameNumber));
ui.Width->setText(newFrame.setNum(videowidth));
ui.Height->setText(newFrame.setNum(videoheight));
ui.FPS->setText(newFrame.setNum(fps));
}

};*/

void ab2::sPlayVideo() {

//myThread->start();
VideoCapture cap;
cap.open("E:/28-prp/vids/pos_003.avi");
if (!cap.isOpened())
{
cout << "fail to open." << endl;
//return -1;
/*QPixmap pix;
pix.load("C:/Users/zutianluo/Documents/Tencent Files/1249396963/FileRecv/MobileFile/pic_of862_lightflow.jpg");

pix = pix.scaled(161, 161, Qt::KeepAspectRatio);
//QImage *image = new QImage("C:/Users/zutianluo/Desktop/1.png");
ui.kmeansImage->setPixmap(pix);
ui.kmeansImage->show();*/
}
else {
//初始化视频信息
double totalFrameNumber = cap.get(CV_CAP_PROP_FRAME_COUNT);
double videowidth = cap.get(CV_CAP_PROP_FRAME_WIDTH);
double videoheight = cap.get(CV_CAP_PROP_FRAME_HEIGHT);
double fps = cap.get(CV_CAP_PROP_FPS);

QString newFrame;
ui.frame->setText(newFrame.setNum(totalFrameNumber));
ui.Width->setText(newFrame.setNum(videowidth));
ui.Height->setText(newFrame.setNum(videoheight));
ui.FPS->setText(newFrame.setNum(fps));

cap.release();

myThread->start();
}
//timer->start();
}

问题:1.#include<QtMmultimedia> #include <QVideoWidget>总显示无法打开源文件。
2.ui.setupUi(this); 报错:表达式必须包含类型
3.double totalFrameNumber = cap.get(CV_CAP_PROP_FRAME_COUNT);
double videowidth = cap.get(CV_CAP_PROP_FRAME_WIDTH);
double videoheight = cap.get(CV_CAP_PROP_FRAME_HEIGHT);
double fps = cap.get(CV_CAP_PROP_FPS);
报错:函数中调用的参数太少
感谢各位大神!!!
...全文
217 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

33,311

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 新手乐园
社区管理员
  • 新手乐园社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧