日々精進

aikoと旅行とプログラミング

CLionでOpenCVを使えるようにした話

タイトルの通り, OpenCVをCLionで使えるように設定した.
CLionというのはJetBrains社が作っているC/C++IDE. IntelliJ IDEAやPyCharm, Ruby Mineと同じ会社である.

www.jetbrains.com

設定環境

OpenCVのビルド

まずはじめにOpenCVのビルドを行う.

OpenCVのダウンロード

OpenCVをダウンロードしてくる.

sourceforge.net

任意の場所に展開し, CMakeでビルドする.

CMakeを使ってビルド

"Where is the source code"には先程展開したディレクトリの中のsourceディレクトリを, "Where to build the binaries"には出力先ディレクトリを書く. 今回はmingwとした. 選択が終わったあとはConfigureを押す.
f:id:bath_poo:20190324163752p:plain ここではMinGW Makefilesを選択する.   f:id:bath_poo:20170410174130p:plain
下記のように真っ赤な画面がでてくるので, Configureを押して白くなるのを待つ.
f:id:bath_poo:20190324163824p:plain 正常に終わると以下のようになる.
f:id:bath_poo:20190324163855p:plain そしてGenerateを押してビルドを行う.

makeを使ってビルド

コマンドプロンプトを開いてCMakeでビルドした先へ移動する.

$ mingw32-make

これが終わったら

$ mingw32-make install

とすることで完了する. このときにエラーがでてmingw23-makeが終わらず大変苦しむ. エラーで検索したら以下のstackoverflowを発見(これに頼るのはいけない気もするが…) stackoverflow.com こいつのとおりに直して無事にインストール完了した.

CLionの設定

CMakeList.txtに以下の内容を追記する.

find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
target_link_libraries( "プロジェクト名" ${OpenCV_LIBS} )

そしてプロジェクトセッティング(今回のプロジェクト名はopencv_testとした)を開き, Executableをプロジェクト名にしてOKし実行.
f:id:bath_poo:20170410181046p:plain 今回使ったソースコードはおなじみ"lena"を表示するプログラム.

#include <opencv2/opencv.hpp>

int main() {
    cv::Mat image;

    image = cv::imread("lena.png", 1);
    if(!image.data){
        printf("No image data\n");
        return -1;
    }
    
    cvNamedWindow("Display Image", CV_WINDOW_AUTOSIZE);
    cv::imshow("Display Image", image);
    cvWaitKey(0);

    return 0;
}

以下のように画像が出力されたら成功. f:id:bath_poo:20170410181245p:plain

参考

inside-my-box.hatenablog.com

追記(2017/11/07)

先日ビルドしたらこのようなエラーが出た.

$ .... windres.exe: invalid option -- W

CmakeでGenerateするときに, ENABLE_PRECOMPILED_HEADERSのチェックを外すとうまくいくらしい.