Всем привет, не могу найти способ установки библиотеки opencv на ubuntu 18-ой версии для написания прог на языке СИ, кучу способов перепробовал, но ничего не работает, вылетает куча неопределенных ссылок,вот фото
Как мне установить эту библиотеку?
Для установки OpenCV из родного репозитария надо выполнить:
sudo apt install libopencv-dev
Ставим репозиторий :
sudo apt install libopencv-dev
После в проекте надо установить библиотеки :
Именно тут вы и допустили ошибку, подключаетете так как будто вы работаете в виндовс, это в корне не верно библиотеки стоят в папке /usr/lib/x86_64-linux-gnu, а заголовочные в /usr/include/opencv есть ещё также /usr/include/opencv2 но она для самой библиотеки, а не для пользователя !!!!
Подключения должны быть прописаны !!!! так не заработает #include<opencv/highgui.h> и так тоже #include<usr/include/opencv/highgui.h>
В общем вот (проект собрал в QtCreator-e) :
openvc1.pro
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
unix:!macx: LIBS += -L$$PWD/../../../../usr/lib/x86_64-linux-gnu/ -lopencv_core
INCLUDEPATH += $$PWD/../../../../usr/include/opencv
DEPENDPATH += $$PWD/../../../../usr/include/opencv
unix:!macx: LIBS += -L$$PWD/../../../../usr/lib/x86_64-linux-gnu/ -lopencv_highgui
INCLUDEPATH += $$PWD/../../../../usr/include/opencv
DEPENDPATH += $$PWD/../../../../usr/include/opencv
unix:!macx: LIBS += -L$$PWD/../../../../usr/lib/x86_64-linux-gnu/ -lopencv_imgproc
INCLUDEPATH += $$PWD/../../../../usr/include/opencv
DEPENDPATH += $$PWD/../../../../usr/include/opencv
main.cpp
#include<cv.h>
#include<highgui.h>
#include <stdlib.h>
#include <stdio.h>
// вот это код у меня так и не запустился
//int main(int argc, char* argv[])
//{
// IplImage* image=0, *dst=0;
// // имя картинки
// char filename[] = "Image0.jpg";
// // получаем картинку
// image = cvLoadImage(filename, 1);
// printf("[i] image: %s\n", filename);
// assert( image != 0 );
// // покажем изображение
// cvNamedWindow( "image");
// cvShowImage( "image", image );
// // ждём нажатия клавиши
// cvWaitKey(0);
// // освобождаем ресурсы
// cvReleaseImage(& image);
// cvReleaseImage(&dst);
// // удаляем окна
// cvDestroyAllWindows();
// return 0;
//}
int main( int argc, char** argv )
{
// задаём высоту и ширину картинки
int height = 620;
int width = 440;
// задаём точку для вывода текста
CvPoint pt = cvPoint( height/4, width/2 );
// Создаёи 8-битную, 3-канальную картинку
IplImage* hw = cvCreateImage(cvSize(height, width), 8, 3);
// заливаем картинку чёрным цветом
cvSet(hw,cvScalar(0,0,0));
// инициализация шрифта
CvFont font;
cvInitFont( &font, CV_FONT_HERSHEY_COMPLEX,1.0, 1.0, 0, 1, CV_AA);
// используя шрифт выводим на картинку текст
cvPutText(hw, "OpenCV Step By Step", pt, &font, CV_RGB(150, 0, 150) );
// создаём окошко
cvNamedWindow("Hello World", 0);
// показываем картинку в созданном окне
cvShowImage("Hello World", hw);
// ждём нажатия клавиши
cvWaitKey(0);
// освобождаем ресурсы
cvReleaseImage(&hw);
cvDestroyWindow("Hello World");
return 0;
}
Также вот ссылки которые вам многое объяснят(первая , вторая ), если вы работаете через g++ то вам будет весьма удобно.
Также сборка в gcc будет выглядеть так :
gcc -fopencv_core -fopencv_imgproc -fopencv_highgui openvc1.c -o tream
#include "/usr/include/...быть не должно. @PavelGridin Это не маразм, это суровая реальность. Причем обычно приходится не просто из исходников собирать, но еще и самостоятельно патчить проблемные места. – user7860670 Dec 23 '19 at 10:04gcc -fopencv_core -fopencv_imgproc -fopencv_highgui openvc1.c -o tream– timob256 Dec 23 '19 at 11:27