Я только что установил 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, если это имеет какое-либо отношение (и я новичок, поэтому я не очень разбираюсь в том, что могут предложить / сделать более продвинутые пользователи)