Есть ли способ исправить компилятор, не находя определенные переменные / функции openCV? - PullRequest
3 голосов
/ 03 мая 2019

Я только что установил openCV 3.2.0 после долгих хлопот с ним. Я попытался написать программу, которая загружает изображение, конвертирует его в оттенки серого, записывает и отображает оба. Проблема всегда, когда я пытаюсь запустить

g ++ main.cpp -o выводить `pkg-config --cflags --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», как и ожидалось. Также я использую Mint 19.1, если это имеет какое-либо отношение (и я новичок, поэтому я не очень разбираюсь в том, что могут предложить / сделать более продвинутые пользователи)

1 Ответ

3 голосов
/ 03 мая 2019
#include <opencv2/imgproc.hpp>

было все, что мне было нужно. Не было написано в официальном коде учебника, поэтому я не знал, что мне это нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...