CMake で OpenCV プロジェクトをビルドする


序文

CMake は、ソフトウェア構築プログラムを管理し、特定のコンパイラに依存せず、マルチレベルのディレクトリ、複数のアプリケーション、および複数のライブラリをサポートするオープンソースのクロスプラットフォーム自動構築システムです。構成ファイルを使用してビルド プロセスを制御する方法は、CMake 構成ファイルの名前が CMakeLists.txt であることを除いて、Unix make と似ています。CMake は最終的なソフトウェアを直接構築しませんが、標準構築ファイル (Unix Makefile や Windows Visual C++ プロジェクト/ワークスペースなど) を生成し、それらを通常の構築モードで使用します。これにより、統合開発環境 (IDE) に精通した開発者は、標準的な方法でソフトウェアをビルドできます。各プラットフォームのネイティブ ビルド システムを使用できるこの機能が、CMake を SCons などの他の同様のシステムと区別します。CMake 構成ファイル (CMakeLists.txt) では、ソース コードまたはターゲット プログラム ライブラリのパスを設定し、アダプター (ラッパー) を生成し、任意の順序で実行可能ファイルをビルドできます。CMake は、インプレース構築 (同じディレクトリ ツリー内のバイナリ ファイルとソース コード) とアウトオブプレース構築 (他のディレクトリ内のバイナリ ファイル) をサポートしているため、同じソース コード ディレクトリ ツリーから簡単に構築できます 複数のバイナリ ファイルを構築します。CMake は、静的ライブラリと動的ライブラリの構築もサポートしています。


1. 基本的な考え方

OpenCV の正式名は Open Source Computer Vision Library で、クロスプラットフォームのコンピュータ ビジョン ライブラリです。OpenCV は Intel Corporation によって開始され、開発に参加しており、BSD ライセンスの下でリリースされており、商用および研究分野で無料で使用できます。OpenCV は、リアルタイム画像処理、コンピュータ ビジョン、パターン認識プログラムの開発に使用できます。このライブラリは、インテルの IPP を使用して処理を高速化することもできます。

2. 操作手順

1. OpenCVプログラムを作成する

#include <stdio.h>
#include <opencv2/opencv.hpp>
using namespace cv;
int main(int argc, char** argv )
{
    if ( argc != 2 )
    {
        printf("usage: DisplayImage.out <Image_Path>\n");
        return -1;
    }
    Mat image;
    image = imread( argv[1], 1 );
    if ( !image.data )
    {
        printf("No image data \n");
        return -1;
    }
    namedWindow("Display Image", WINDOW_AUTOSIZE );
    imshow("Display Image", image);
    waitKey(0);
    return 0;
}

ここに画像の説明を挿入

2.CMakeファイルを作成する

cmake_minimum_required(VERSION 2.8)
project( DisplayImage )
find_package( OpenCV REQUIRED )
include_directories( ${OpenCV_INCLUDE_DIRS} )
add_executable( DisplayImage DisplayImage.cpp )
target_link_libraries( DisplayImage ${OpenCV_LIBS} )

ここに画像の説明を挿入

3. プロジェクトをコンパイルする

cd <DisplayImage_directory>
cmake .
make

ここに画像の説明を挿入

4. プロジェクトを実行する

./DisplayImage OpenCV_Logo_with_text.png

ここに画像の説明を挿入


要約する

この記事では、CMake が OpenCV プロジェクトをビルドするプロセスを紹介します。

おすすめ

転載: blog.csdn.net/szylight2022/article/details/128290205