是否有一种方法可以修复编译器未找到特定的OPENCV变量/函数

Is there a way to fix the compiler not finding specific openCV variables/functions?

本文关键字:函数 变量 OPENCV 编译器 一种 方法 是否      更新时间:2023-10-16

我刚刚安装了opencv 3.2.0,在长时间的麻烦之后。我尝试编写一个加载图像,将其转换为灰度,写入并显示两者的程序。问题是每当我尝试运行

g main.cpp -o输出`pkg -config - flags -libs opencv`

我得到以下

main.cpp: In function ‘int main()’:
main.cpp:14:27: error: ‘COLOR_BGR2GRAY’ was not declared in this scope
   cvtColor(image, gImage, COLOR_BGR2GRAY);
                           ^~~~~~~~~~~~~~
main.cpp:14:27: note: suggested alternative: ‘CV_BGR2GRAY’
   cvtColor(image, gImage, COLOR_BGR2GRAY);
                           ^~~~~~~~~~~~~~
                           CV_BGR2GRAY
main.cpp:14:3: error: ‘cvtColor’ was not declared in this scope
   cvtColor(image, gImage, COLOR_BGR2GRAY);
   ^~~~~~~~
main.cpp:14:3: note: suggested alternative: ‘cvCvtColor’
   cvtColor(image, gImage, COLOR_BGR2GRAY);
   ^~~~~~~~
   cvCvtColor

我正在阅读OpenCV教程,并且正在为我的版本3.2.0读取它,并且它正在使用我试图使用的名称。

这是我的代码:

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
int main()
{
  Mat image = imread("test.jpeg", 1);
  Mat gImage;
  cvtColor(image, gImage, COLOR_BGR2GRAY);
  imwrite("test_gray.jpeg", gImage);
  namedWindow("Display image", WINDOW_AUTOSIZE);
  imshow("Display image", image);
  namedWindow("gray", WINDOW_AUTOSIZE);
  imshow("gray", gImage);
  waitKey(0);
  return 0;
}

我尝试运行

pkg-config -modversion opencv

检查我是否已安装了OPENCV的正确版本,并按预期返回了" 3.2.0"。另外,我正在运行薄荷19.1,如果这是任何相关性的(我是初学者,所以我对更高级用户可能建议/做的事情并不非常精明(

#include <opencv2/imgproc.hpp>

是我所需要的。不是在官方教程的代码中写的,所以我不知道我需要它。