Ubuntu20.04 konfiguriert opencv in vsCode

1. OpenCV herunterladen:

https://opencv.org/releases/
Ich habe die Version opencv4.5.4 heruntergeladen. Sie können die ZIP-Datei direkt herunterladen und andere Versionen auswählen.

Die Sources-Version ist die .zip-Version
Die Sources-Version ist die .zip-Version:

2. OpenCV installieren:

Das Standard-Download-Verzeichnis von Linux ist Downloads. Öffnen Sie es hier mit dem Terminal
Fügen Sie hier eine Bildbeschreibung ein

1. Dekomprimieren

Geben Sie den Befehl ein: unzip opencv-4.5.4.zip;
Wenn ein Fehler gemeldet wird, installieren Sie unzip: sudo apt-get install unzip;

2. Installieren Sie abhängige Bibliotheken:

Aktualisieren Sie es zuerst

sudo apt update
sudo apt upgrade
sudo apt install g++
sudo apt install cmake
sudo apt install make

3. Installieren Sie OpenCV-Abhängigkeiten

Hier wählen wir nur einige der Abhängigkeiten von opencv aus, da opencv viele Abhängigkeiten aufweist und einige davon möglicherweise nicht nützlich sind. Informationen zur Installation der benötigten Abhängigkeiten finden Sie im Internet.

sudo apt-get install build-essential libgtk2.0-dev libgtk-3-dev libavcodec-dev libavformat-dev libjpeg-dev libswscale-dev libtiff5-dev libopenexr-dev libtbb-dev

Nach der Dekomprimierung stellte ich fest, dass opencv ein cmake-Projekt ist, das CMakeList.txt enthält. Daher ist cmake erforderlich, um das Makefile zu generieren,
einen Build-Ordner zu erstellen und ihn einzugeben: mkdir build, cd build.

4. Verwenden Sie das cmake-Tool:

cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES ..

Es muss hinzugefügt werden OPENCV_GENERATE_PKGCONFIG=YES, andernfalls wird beim späteren Hinzufügen des Pfads ein Fehler gemeldet:
„->pkg-config --modversion opencv“ zeigt „Kein Paket ‚opencv‘ gefunden“ an.
Verwenden Sie makeoder make -j4, make -j8 , make -12, zum Kompilieren der Nummer danach ruft j mehrere auf Um mit Threads zu kompilieren, wählen Sie bitte entsprechend der Leistung Ihres Computers aus, da sonst leicht ein Fehler gemeldet werden kann.

„Schwerwiegender Fehler: Killed Signal beendete Programm cc1plus-Kompilierung beendet.“

5. Verwenden Sie zur Installation make install.

sudo make install

Der Installationspfad von opencv4 lautet
. Der Konfigurationspfad wird später verwendet:

/usr/local/include/opencv4

Der Pfad zur Bibliotheksdatei lautet:

/usr/local/lib

3. Konfigurieren Sie die OpenCV-Kompilierungsumgebung

1. Pfad hinzufügen:

Fügen Sie zunächst die OpenCV-Bibliothek zum Pfad hinzu, damit das System sie finden kann
. Befehl:

sudo gedit /etc/ld.so.conf.d/opencv4.conf 

Nach der Ausführung dieses Befehls wird möglicherweise eine leere Datei geöffnet. Machen Sie sich darüber keine Sorgen. Fügen Sie einfach hinzu

/usr/local/lib

Beachten Sie , dass Sie diesen Teil bitte entsprechend Ihrer eigenen Situation ändern, wenn andere Pfade cmakewie hier festgelegt sind.CMAKE_INSTALL_PREFIX=/usr/local/opencv4

2. Lassen Sie den Konfigurationspfad jetzt wirksam werden:

Führen Sie den folgenden Befehl aus:

sudo ldconfig 

3. Bash konfigurieren:

sudo gedit /etc/bash.bashrc

Am Ende der Datei hinzufügen:

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig 
export PKG_CONFIG_PATH 

4. Führen Sie den folgenden Befehl aus, damit die Konfiguration gerade wirksam wird:

source /etc/bash.bashrc 

5. Aktualisierung:

sudo updatedb 

Wenn hier ein Fehler gemeldet wird, müssen Sie zuerst mlocate installieren

apt-get install mlocate 

6. Die Konfiguration ist abgeschlossen, überprüfen Sie sie

Sie können eingeben pkg-config --modversion opencv4, um die Version von opencv anzuzeigen. Wenn 4.5.4 ausgegeben wird, ist die Installation erfolgreich.
Fügen Sie hier eine Bildbeschreibung ein

Wenn ein Fehler wie der folgende gemeldet wird, überprüfen Sie bitte Ihre Pfadkonfiguration. Wenn das nicht funktioniert, installieren Sie es neu und wiederholen Sie die oben genannten Schritte.
Fügen Sie hier eine Bildbeschreibung ein

4. Während des Make-Vorgangs können Fehler auftreten:

fatal error: Killed signal terminated program cc1plus compilation terminated.

Dies liegt daran, dass der Speicher der virtuellen Maschine klein ist. Es gibt drei Möglichkeiten, das Problem zu lösen.

1. Erweitern Sie den Speicher der virtuellen Maschine direkt.

Erhöhen Sie direkt in den Einstellungen der virtuellen Maschine den zugewiesenen Speicher.
Fügen Sie hier eine Bildbeschreibung ein

2. Swap-Partition hinzufügen

Überprüfen Sie zunächst free -mdie Größe der Swap-Partition
Fügen Sie hier eine Bildbeschreibung ein

(1) Partitionspfad erstellen
sudo mkdir -p /var/cache/swap/
(2) Legen Sie die Größe der Partition fest, bs=64M ist die Blockgröße, count=64 ist die Anzahl der Blöcke, also beträgt die Swap-Space-Größe bs*count=4096MB=4GB
sudo dd if=/dev/zero of=/var/cache/swap/swap0 bs=64M count=64
(3) Legen Sie die Verzeichnisberechtigungen fest
sudo chmod 0600 /var/cache/swap/swap0
(4) SWAP-Datei erstellen
sudo mkswap /var/cache/swap/swap0
(5) SWAP-Datei aktivieren
sudo swapon /var/cache/swap/swap0
(6) Überprüfen Sie, ob die SWAP-Informationen korrekt sind
sudo swapon -s

Referenz hier https://blog.csdn.net/weixin_44796670/article/details/121234446

3. Reduzieren Sie die Anzahl der Prozesse in make

Nach dem Ändern der oben genannten Einstellungen wird beim Neukompilieren kein Fehler mehr gemeldet.

5. VSCode-Konfiguration

Erstellen Sie ein neues vscode-Projekt.

1. Konfigurieren Sie die Datei c_cpp_properties.json

Drücken Sie **„Strg+Umschalt+P“**, suchen und öffnen Sie die erste Konfiguration wie unten gezeigt,
Fügen Sie hier eine Bildbeschreibung ein
also c_cpp_properties.jsondie Datei, und fügen Sie den opencv4-Pfad hinzu:

"/usr/local/include/opencv4"

Fügen Sie hier eine Bildbeschreibung ein
Hinweis: Der Pfad von opencv, den ich installiert habe,include/opencv4/opencv2
kann auch als definiert werden

"/usr/local/include/"

Implementieren Sie einfach einen Softlink

cd   /usr/local/include/
sudo  ln  -s   opencv4/opencv2   opencv2

Fügen Sie hier eine Bildbeschreibung ein

2. Konfigurieren Sie die Datei „tasks.json“:

Fügen Sie hier eine Bildbeschreibung ein

{
    
    
    "tasks": [
        {
    
    
            "type": "cppbuild",
            "label": "C/C++: g++ build active file",  /* 与launch.json文件里的preLaunchTask的内容保持一致 */
            "command": "/usr/bin/g++",
            "args": [
                "-std=c++11",
                "-g",
                //"${file}",   /* 编译单个文件 */
                "${fileDirname}/*.cpp",  /* 编译多个文件 */
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}",  /* 输出文件路径 */
 
                /* 项目所需的头文件路径 */
                "-I","${workspaceFolder}/",
                "-I","/usr/local/include/",
                "-I","/usr/local/include/opencv4/",
                "-I","/usr/local/include/opencv4/opencv2",
 
                /* 项目所需的库文件路径 */
                "-L", "/usr/local/lib",
 
                /* OpenCV的lib库 */
                "/usr/local/lib/libopencv_*",
 
            ],
            "options": {
    
    
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
    
    
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

3. Konfigurieren Sie die Datei launch.json:

Drücken Sie **"Strg+Umschalt+P"**, suchen Sie nach launch.json und öffnen Sie die erste Konfiguration wie unten gezeigt:
Fügen Sie hier eine Bildbeschreibung ein

{
    
    

    "version": "0.2.0",
    "configurations": [
        {
    
    
            "name": "g++ - Build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",  //程序文件路径
            "args": [],  //程序运行需传入的参数
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": true,   //运行时是否显示控制台窗口
            "MIMode": "gdb",
            "setupCommands": [
                {
    
    
                    "description": "Enable pretty-printing for gdb",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "C/C++: g++ build active file",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

Schreiben Sie ein einfaches Programm zum Lesen von Bildern: Es kann ausgeführt werden

#include <opencv2/opencv.hpp>
#include <iostream>
using namespace std;

int main(int argc, char* argv[]) {
    
    
    const char* imagename = "xiaomaolv.jpg";//此处为的图片路径
    //从文件中读入图像
    cv::Mat img = cv::imread(imagename, 1);
    //如果读入图像失败
    if (img.empty()) {
    
    
        fprintf(stderr, "Can not load image %s\n", imagename);
        return -1;
    }
    cv::imshow("image", img); //显示图像
    cv::waitKey();
    return 0;
}

Fügen Sie hier eine Bildbeschreibung ein
Zu diesem Zeitpunkt haben wir opencv in Ubuntu20.04 installiert und konfiguriert!

Guess you like

Origin blog.csdn.net/AcetylcholineACh/article/details/129826710