OpenCV 4.12.0
開源計算機視覺
載入中...
搜尋中...
無匹配項
將 OpenCV 與 Eclipse(外掛 CDT)一起使用

上一個教程: 使用 gcc 和 CMake 進行 OpenCV 開發
下一個教程: 在 Windows 中安裝

原始作者Ana Huamán
相容性OpenCV >= 3.0
警告
本教程可能包含過時的資訊。

前提條件

兩種方式,一種是直接建立專案,另一種是透過 CMake

  1. 已安裝 Eclipse 在您的工作站上(只需要 C/C++ 的 CDT 外掛)。您可以按照以下步驟操作
  2. 已安裝 OpenCV。 如果還沒有,請點選這裡

建立專案

  1. 啟動 Eclipse。 只需執行該資料夾中的可執行檔案即可。
  2. 轉到 File -> New -> C/C++ Project
  1. 為您的專案選擇一個名稱(例如 DisplayImage)。 對於此示例,Empty Project 應該可以。
  1. 保留其他所有預設設定。 按 Finish
  2. 您的專案(在本例中為 DisplayImage)應出現在 Project Navigator 中(通常在視窗的左側)。
  1. 現在,讓我們新增一個使用 OpenCV 的原始檔
    • 右鍵單擊 DisplayImage(在導航器中)。 New -> Folder
  • 將您的資料夾命名為 src,然後點選 Finish
  • 右鍵單擊您新建立的 src 資料夾。 選擇 New source file
  • 將其命名為 DisplayImage.cpp。 點選 Finish
  1. 所以,現在您有了一個帶有空的 .cpp 檔案的專案。 讓我們用一些示例程式碼填充它(換句話說,複製並貼上下面的程式碼片段)
    #include <opencv2/opencv.hpp>
    using namespace cv;
    int main( int argc, char** argv )
    {
    Mat image;
    image = imread( argv[1], IMREAD_COLOR );
    if( argc != 2 || !image.data )
    {
    printf( "No image data \n" );
    return -1;
    }
    namedWindow( "Display Image", WINDOW_AUTOSIZE );
    imshow( "Display Image", image );
    waitKey(0);
    return 0;
    }
    n 維密集陣列類
    定義 mat.hpp:830
    uchar * data
    指向資料的指標
    定義 mat.hpp:2167
    int main(int argc, char *argv[])
    定義 highgui_qt.cpp:3
    定義 core.hpp:107
  2. 我們只缺少最後一個步驟:告訴 OpenCV OpenCV 標頭檔案和庫的位置。 為此,請執行以下操作
    • 轉到 Project–>Properties
    • C/C++ Build 中,單擊 Settings。 在右側,選擇 Tool Settings 選項卡。 在這裡我們將輸入標頭檔案和庫資訊
      1. GCC C++ Compiler 中,轉到 Includes。 在 Include paths(-l) 中,您應該包含 opencv 安裝的資料夾的路徑。 在我們的示例中,它是 /usr/local/include/opencv。
注意
如果您不知道您的 opencv 檔案在哪裡,請開啟 Terminal 並輸入
pkg-config --cflags opencv
例如,該命令給了我這個輸出
-I/usr/local/include/opencv -I/usr/local/include
  1. 現在轉到 GCC C++ Linker,您必須填寫兩個空格

    首先在 Library search path (-L) 中,您必須寫入 opencv 庫所在的路徑,在我的例子中,路徑是:

    /usr/local/lib
    

    然後在 Libraries(-l) 中新增您可能需要的 OpenCV 庫。 通常只需列表中的前 4 個就足夠了(對於簡單的應用程式)。 在我的例子中,我把它們都放進去,因為我計劃使用整個集合

    opencv_core opencv_imgproc opencv_imgcodecs opencv_highgui opencv_ml opencv_videoio opencv_video opencv_features2d opencv_calib3d opencv_objdetect opencv_flann

如果您不知道您的庫在哪裡(或者您只是精神病患者並想確保路徑正確),請在 Terminal 中輸入

pkg-config --libs opencv

我的輸出(如果您想檢查)是

-L/usr/local/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_videoio -lopencv_imgcodecs -lopencv_flann

現在您已完成。 點選 OK

  • 您的專案應該可以構建了。 為此,請轉到 Project->Build all

    在控制檯中,您應該得到類似的結果

如果您在資料夾中檢查,那裡應該有一個可執行檔案。

執行可執行檔案

所以,現在我們有一個準備執行的可執行檔案。 如果我們要使用終端,我們可能會做類似的事情

cd <DisplayImage_directory>
cd src
./DisplayImage ../images/HappyLittleFish.png

假設用作引數的影像位於 <DisplayImage_directory>/images/HappyLittleFish.png 中。 我們仍然可以這樣做,但讓我們從 Eclipse 中進行

  1. 轉到 Run->Run Configurations
  2. 在 C/C++ Application 下,您將看到您的可執行檔案的名稱 + Debug(如果沒有,請多次單擊 C/C++ Application)。 選擇名稱(在本例中為 DisplayImage Debug)。
  3. 現在,在視窗的右側,選擇 Arguments 選項卡。 寫入我們要開啟的影像檔案的路徑(路徑相對於 workspace/DisplayImage 資料夾)。 讓我們使用 HappyLittleFish.png
  1. 單擊 Apply 按鈕,然後單擊 Run。 應該會彈出一個帶有魚影像的 OpenCV 視窗(或者您使用的任何影像)。
  1. 恭喜! 您已準備好使用 Eclipse 來享受 OpenCV 的樂趣。

V2: 在 Eclipse (外掛 CDT) 中使用 CMake+OpenCV

假設您有一個或建立一個新檔案,helloworld.cpp,位於名為 foo 的目錄中

#include <opencv2/opencv.hpp>
using namespace cv;
int main ( int argc, char **argv )
{
Mat img(480, 640, CV_8U);
putText(img, "Hello World!", Point( 200, 400 ), FONT_HERSHEY_SIMPLEX | FONT_ITALIC, 1.0, Scalar( 255, 255, 0 ));
imshow("My Window", img);
cv::Mat::empty
return 0;
}
CV_8U
#define CV_8U
  1. 建立一個構建目錄,例如,在 foo 下:mkdir /build。 然後 cd build。
  2. 在 build 中放置一個 CmakeLists.txt 檔案
    PROJECT( helloworld_proj )
    FIND_PACKAGE( OpenCV REQUIRED )
    ADD_EXECUTABLE( helloworld helloworld.cxx )
    TARGET_LINK_LIBRARIES( helloworld \f${OpenCV_LIBS} )
  3. 執行:cmake-gui .. 並確保您填寫了 OpenCV 的構建位置。
  4. 然後單擊 configure,然後單擊 generate。 如果沒問題,退出 cmake-gui
  5. 執行 make -j4(-j4 是可選的,它只是告訴編譯器以 4 個執行緒構建)。 確保它可以構建。
  6. 啟動 eclipse。 將工作空間放在某個目錄中,但不要放在 foo 或 foo\build
  7. 在 Project Explorer 部分中右鍵單擊。 選擇 Import,然後開啟 C/C++ 過濾器。 選擇 Existing Code 作為 Makefile Project。
  8. 命名您的專案,例如 helloworld。 瀏覽到 Existing Code 位置 foo\build(您從中執行 cmake-gui 的位置)。 在 "Toolchain for Indexer Settings" 中選擇 Linux GCC,然後按 Finish
  9. 在 Project Explorer 部分中右鍵單擊。 選擇 Properties。 在 C/C++ Build 下,將 build directory: 從類似 ${workspace_loc:/helloworld} 的內容設定為 ${workspace_loc:/helloworld}/build,因為這是您要構建到的位置。
    1. 您也可以選擇修改 Build command:從 make 到類似 make VERBOSE=1 -j4 的內容,這會告訴編譯器生成詳細的符號檔案以進行除錯,並且還以 4 個並行執行緒進行編譯。
  10. 完成!