c++ - OpenCV 3 错误 'CV_FOURCC' : identifier not found

标签 c++ windows opencv3.0

刚刚在 PC 上使用 Visual Studio 2013 构建了 OpenCV 3,现在我正在尝试编写代码,但遗憾的是我不知道出了什么问题?

#include "opencv2/opencv.hpp"
#include <iostream>

using namespace std;
using namespace cv;

int main() {

    VideoCapture vcap(0);
    if (!vcap.isOpened()) {
        cout << "Error opening video stream or file" << endl;
        return -1;
    }

    int frame_width = vcap.get(cv::CAP_PROP_FRAME_WIDTH);
    int frame_height = vcap.get(cv::CAP_PROP_FRAME_HEIGHT);
    VideoWriter video("out.avi", CV_FOURCC('M', 'J', 'P', 'G'), 10, Size(frame_width, frame_height), true);

    for (;;) {

        Mat frame;
        vcap >> frame;
        video.write(frame);
        imshow("Frame", frame);
        char c = (char)waitKey(33);
        if (c == 27) break;
    }
    return 0;


1>------ Build started: Project: ConsoleApplication12, Configuration: Release x64 ------
1>  Source.cpp
1>Source.cpp(21): warning C4244: 'initializing' : conversion from 'double' to 'int', possible loss of data
1>Source.cpp(22): warning C4244: 'initializing' : conversion from 'double' to 'int', possible loss of data
1>Source.cpp(23): error C3861: 'CV_FOURCC': identifier not found
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

无法弄清楚我必须用什么来替换“CV_FOURCC”。

编辑:

int frame_width = vcap.get(cv::CAP_PROP_FRAME_WIDTH);
    int frame_height = vcap.get(cv::CAP_PROP_FRAME_HEIGHT);
    int codec = cv::VideoWriter::fourcc('M', 'J', 'P', 'G');
    VideoWriter video("out.avi", codec, 10, Size(frame_width, frame_height), true);

最佳答案

看起来这在 OpenCV 的更高版本中已更改为 cv::VideoWriter::fourcc(...) 其中 ... 是四字符-逗号分隔列表。

更多关于 OpenCV 3.4 的信息:https://docs.opencv.org/3.4/dd/d9e/classcv_1_1VideoWriter.html#afec93f94dc6c0b3e28f4dd153bc5a7f0

关于c++ - OpenCV 3 错误 'CV_FOURCC' : identifier not found,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51624448/

相关文章:

使用和不使用命名空间标准的 C++ 长 double 差异;

c++ - 错误 : call to implicitly-deleted copy constructor of 'std::__1::unique_ptr<A, std::__1::default_delete<A>>'

python - 自动泊车位检测-如何使用OpenCV和Python初始化泊车位图/空间

python - cv2.imshow显示二进制图像

c++ - 更新图像显示时的QImage和openmp

c++ - 将boost序列化对象的asio::streambuf表示形式转换为Beast的DynamicBody req.body()

c# - ASP.NET,401 - 未经授权,有效帐户

windows - nodejs解码(子进程使用)

windows - Python 事件

c++ - OpenCV C++ 中方差局部二进制模式 (VLBP) 的直方图计算