OpenCV4 error: ‘CV_CAP_PROP_FRAME_WIDTH’ was not declared in this scope

OpenCV4 error: ‘CV_CAP_PROP_FRAME_WIDTH’ was not declared in this scope

我最近在 Ubuntu 18.04 LTS 上从 OpenCV3.3 迁移到最新版本的 OpenCV4。我在安装过程中遇到了一些持续存在的问题。当我按照 this installation tutorial. But whenever I include the module opencv2/highgui.hpp in my project, I get problems like below. This seems to be an issue caused by highgui.hpp when I followed this link.

安装时,我的安装没有出现任何错误
/home/arun/Documents/AutonomousLaneDetection/app/main.cpp: In function ‘int main(int, char**)’:
/home/arun/Documents/AutonomousLaneDetection/app/main.cpp:118:36: error: ‘CV_CAP_PROP_FRAME_WIDTH’ was not declared in this scope
 int videoWidth = videofile.get(CV_CAP_PROP_FRAME_WIDTH);
                                ^~~~~~~~~~~~~~~~~~~~~~~
/home/arun/Documents/AutonomousLaneDetection/app/main.cpp:119:37: error: ‘CV_CAP_PROP_FRAME_HEIGHT’ was not declared in this scope
 int videoHeight = videofile.get(CV_CAP_PROP_FRAME_HEIGHT);
                                 ^~~~~~~~~~~~~~~~~~~~~~~~
/home/arun/Documents/AutonomousLaneDetection/app/main.cpp:123:27: error: ‘CV_FOURCC’ was not declared in this scope
                       CV_FOURCC('M', 'J', 'P', 'G'), 10,
                       ^~~~~~~~~
/home/arun/Documents/AutonomousLaneDetection/app/main.cpp:123:27: note: suggested alternative: ‘CV_BLUR’
                       CV_FOURCC('M', 'J', 'P', 'G'), 10,
                       ^~~~~~~~~
                       CV_BLUR

这些常量在 OpenCV 中的名称和位置已经更改了一段时间。

对于捕获属性,它们不再以 CV_ 开头,因此请从所有属性中删除该前缀。您可以找到所有可用捕获属性的列表 here,请注意它们都以 CAP_PROP_.

开头

FOURCC代码构造函数现在是VideoWriterclass上的一个方法,所以你应该使用VideoWriter::fourcc(...)。可以找到文档 here.