mirror of
https://github.com/lostjared/Acid.Cam.v2.Qt.git
synced 2025-12-05 14:30:03 +01:00
opencv4 branch
This commit is contained in:
@@ -7,10 +7,10 @@ TARGET = Acid_Cam_v2_Qt
|
||||
QT += core gui widgets
|
||||
DEPENDPATH += .
|
||||
INCLUDEPATH += . /usr/include/ /usr/local/include
|
||||
LIBS += `pkg-config acidcam opencv --libs`
|
||||
LIBS += `pkg-config acidcam opencv4 --libs`
|
||||
#LIBS += -lopencv_contrib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_legacy -lopencv_video
|
||||
#LIBS += -L/usr/local/lib -lopencv_world
|
||||
QMAKE_CXXFLAGS += -std=c++11 `pkg-config acidcam opencv --cflags`
|
||||
QMAKE_CXXFLAGS += -std=c++11 `pkg-config acidcam opencv4 --cflags`
|
||||
RESOURCES += qresource.qrc
|
||||
|
||||
# Input
|
||||
|
||||
@@ -866,7 +866,7 @@ bool AC_MainWindow::startCamera(int res, int dev, const QString &outdir, bool re
|
||||
|
||||
if(recording) {
|
||||
video_file_name = output_name;
|
||||
writer = cv::VideoWriter(output_name.toStdString(), (type == 0) ? CV_FOURCC('m', 'p', '4', 'v') : CV_FOURCC('X','V','I','D'), video_fps, cv::Size(res_w, res_h), true);
|
||||
writer = cv::VideoWriter(output_name.toStdString(), (type == 0) ? cv::VideoWriter::fourcc('m', 'p', '4', 'v') : cv::VideoWriter::fourcc('X','V','I','D'), video_fps, cv::Size(res_w, res_h), true);
|
||||
|
||||
if(!writer.isOpened()) {
|
||||
Log(tr("Could not create video writer..\n"));
|
||||
@@ -906,11 +906,11 @@ bool AC_MainWindow::startVideo(const QString &filename, const QString &outdir, b
|
||||
if(!capture_video.isOpened()) {
|
||||
return false;
|
||||
}
|
||||
video_frames = capture_video.get(CV_CAP_PROP_FRAME_COUNT);
|
||||
video_frames = capture_video.get(cv::CAP_PROP_FRAME_COUNT);
|
||||
if(video_frames <= 0) return false;
|
||||
video_fps = capture_video.get(CV_CAP_PROP_FPS);
|
||||
int res_w = capture_video.get(CV_CAP_PROP_FRAME_WIDTH);
|
||||
int res_h = capture_video.get(CV_CAP_PROP_FRAME_HEIGHT);
|
||||
video_fps = capture_video.get(cv::CAP_PROP_FPS);
|
||||
int res_w = capture_video.get(cv::CAP_PROP_FRAME_WIDTH);
|
||||
int res_h = capture_video.get(cv::CAP_PROP_FRAME_HEIGHT);
|
||||
QString str;
|
||||
QTextStream stream(&str);
|
||||
stream << "Opened capture device [Video] " << res_w << "x" << res_h << "\n";
|
||||
@@ -941,7 +941,7 @@ bool AC_MainWindow::startVideo(const QString &filename, const QString &outdir, b
|
||||
|
||||
if(recording) {
|
||||
video_file_name = output_name;
|
||||
writer = cv::VideoWriter(output_name.toStdString(), (type == 0) ? CV_FOURCC('m', 'p', '4', 'v') : CV_FOURCC('X','V','I','D'), video_fps, cv::Size(res_w, res_h), true);
|
||||
writer = cv::VideoWriter(output_name.toStdString(), (type == 0) ? cv::VideoWriter::fourcc('m', 'p', '4', 'v') : cv::VideoWriter::fourcc('X','V','I','D'), video_fps, cv::Size(res_w, res_h), true);
|
||||
|
||||
if(!writer.isOpened()) {
|
||||
Log("Error could not open video writer.\n");
|
||||
@@ -1115,14 +1115,14 @@ cv::Mat QImage2Mat(QImage const& src)
|
||||
{
|
||||
cv::Mat tmp(src.height(),src.width(),CV_8UC3,(uchar*)src.bits(),src.bytesPerLine());
|
||||
cv::Mat result;
|
||||
cvtColor(tmp, result,CV_BGR2RGB);
|
||||
cvtColor(tmp, result,cv::COLOR_BGR2RGB);
|
||||
return result;
|
||||
}
|
||||
|
||||
QImage Mat2QImage(cv::Mat const& src)
|
||||
{
|
||||
cv::Mat temp;
|
||||
cvtColor(src, temp,CV_BGR2RGB);
|
||||
cvtColor(src, temp,cv::COLOR_BGR2RGB);
|
||||
QImage dest((const uchar *) temp.data, temp.cols, temp.rows, temp.step, QImage::Format_RGB888);
|
||||
dest.bits();
|
||||
return dest;
|
||||
|
||||
@@ -38,7 +38,7 @@ void Playback::setVideo(cv::VideoCapture cap, cv::VideoWriter wr, bool record) {
|
||||
writer = wr;
|
||||
recording = record;
|
||||
if(capture.isOpened()) {
|
||||
frame_rate = capture.get(CV_CAP_PROP_FPS);
|
||||
frame_rate = capture.get(cv::CAP_PROP_FPS);
|
||||
if(frame_rate <= 0) frame_rate = 24;
|
||||
}
|
||||
mutex.unlock();
|
||||
@@ -81,13 +81,13 @@ bool Playback::setVideoCamera(int device, int res, cv::VideoWriter wr, bool reco
|
||||
res_h = 1080;
|
||||
break;
|
||||
}
|
||||
bool cw = capture.set(CV_CAP_PROP_FRAME_WIDTH, res_w);
|
||||
bool ch = capture.set(CV_CAP_PROP_FRAME_HEIGHT, res_h);
|
||||
bool cw = capture.set(cv::CAP_PROP_FRAME_WIDTH, res_w);
|
||||
bool ch = capture.set(cv::CAP_PROP_FRAME_HEIGHT, res_h);
|
||||
if(cw == false || ch == false) {
|
||||
res_w = ores_w;
|
||||
res_h = ores_h;
|
||||
capture.set(CV_CAP_PROP_FRAME_WIDTH, res_w);
|
||||
capture.set(CV_CAP_PROP_FRAME_HEIGHT, res_h);
|
||||
capture.set(cv::CAP_PROP_FRAME_WIDTH, res_w);
|
||||
capture.set(cv::CAP_PROP_FRAME_HEIGHT, res_h);
|
||||
}
|
||||
mutex.unlock();
|
||||
return true;
|
||||
@@ -269,7 +269,7 @@ void Playback::run() {
|
||||
mutex.unlock();
|
||||
if(video_shown == true) {
|
||||
if(frame.channels()==3) {
|
||||
cv::cvtColor(frame, rgb_frame, CV_BGR2RGB);
|
||||
cv::cvtColor(frame, rgb_frame, cv::COLOR_BGR2RGB);
|
||||
img = QImage((const unsigned char*)(rgb_frame.data), rgb_frame.cols, rgb_frame.rows, QImage::Format_RGB888);
|
||||
} else {
|
||||
img = QImage((const unsigned char*)(frame.data), frame.cols, frame.rows, QImage::Format_Indexed8);
|
||||
@@ -301,7 +301,7 @@ Playback::~Playback() {
|
||||
|
||||
void Playback::setFrameIndex(const long &index) {
|
||||
mutex.lock();
|
||||
capture.set(CV_CAP_PROP_POS_FRAMES, index);
|
||||
capture.set(cv::CAP_PROP_POS_FRAMES, index);
|
||||
mutex.unlock();
|
||||
}
|
||||
|
||||
@@ -311,7 +311,7 @@ bool Playback::getFrame(QImage &img, const int &index) {
|
||||
mutex.lock();
|
||||
cv::Mat frame;
|
||||
if(mode == MODE_VIDEO && capture.read(frame)) {
|
||||
cv::cvtColor(frame, rgb_frame, CV_BGR2RGB);
|
||||
cv::cvtColor(frame, rgb_frame, cv::COLOR_BGR2RGB);
|
||||
img = QImage((const unsigned char*)(rgb_frame.data), rgb_frame.cols, rgb_frame.rows, QImage::Format_RGB888);
|
||||
mutex.unlock();
|
||||
setFrameIndex(index);
|
||||
|
||||
Reference in New Issue
Block a user