1

Всем привет, не могу найти способ установки библиотеки opencv на ubuntu 18-ой версии для написания прог на языке СИ, кучу способов перепробовал, но ничего не работает, вылетает куча неопределенных ссылок,вот фотовведите сюда описание изображения

введите сюда описание изображения

Как мне установить эту библиотеку?

  • opencv install ubuntu в гугле конечно ну нельзя набрать – Небывалый Dec 23 '19 at 05:37
  • @Andrey, вы бы набрали и посмотрели, что там пишут, там копируют с сайта на сайт один и тот же маразм, про сборку из исходников – Pavel Gridin Dec 23 '19 at 09:55
  • @PavelGridin ну я как бы когда то так и делал и все норм. Если читать бездумно то да, лажа – Небывалый Dec 23 '19 at 10:03
  • 2
    Инклюды у вас кстати тоже не прописаны. #include "/usr/include/... быть не должно. @PavelGridin Это не маразм, это суровая реальность. Причем обычно приходится не просто из исходников собирать, но еще и самостоятельно патчить проблемные места. – user7860670 Dec 23 '19 at 10:04
  • В чем вы работаете ?? первый раз такое вижу. Также спрашивайте, если ещё остались вопросы, как могу так и помогу :3 – timob256 Dec 23 '19 at 11:23
  • Также вызов на си будет выглядеть так : gcc -fopencv_core -fopencv_imgproc -fopencv_highgui openvc1.c -o tream – timob256 Dec 23 '19 at 11:27

2 Answers2

0

Для установки OpenCV из родного репозитария надо выполнить:

sudo apt install libopencv-dev
Pavel Gridin
  • 1,248
  • 1
  • 10
  • 12
0

Ставим репозиторий :

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 
timob256
  • 2,907