Help us understand the problem. What is going on with this article?

VisualStudio 2012(32bit)用OpenCV 3.2.0のビルド

More than 1 year has passed since last update.

とある事情から、VisualStudio 2012(32bit)用のOpenCV 3.2.0ライブラリをビルドしなくてはいけなくなったため、その手順を書き残していきます。

【とある事情】
OpenCV 2.4.10(32bit)を使用したとき、rectangle()等で指定できる座標が32,767(SHRT_MAX)までであったため
(OpenCV 3.2.0(64bit)はそれ以上でも問題なかった)
しかも、OpenCV 3.2.0に32bitのライブラリ(バイナリ)は用意されていない

CMakeの用意

OpenCVをビルドするためにはCMakeが必要なため、事前にインストールしておく必要があります。

CMakeのダウンロード

https://cmake.org/download/からダウンロードを行います。
今回はバイナリのインストーラでいいため、「cmake-3.9.2-win64-x64.msi」をダウンロードしました。
image1.png

CMakeのインストール

ダウンロード後、指示に従い、インストールを行います。
image2.png
image3.png
image4.png
image5.png
image6.png
image7.png
image9.png

OpenCVのビルド

では本題の32bit用のOpenCVのビルドを行います。

OpenCVのダウンロード

githubからダウンロードしてきてもよいが、今回はソースがまとまっている公式のダウンロードサイトから取得した。
image8.png
※「Win pack」でもよいが、すでにVisualStudio 2017用のバイナリが含まれれているので、ちょっと目障り(苦笑)

ダウンロード後、zipを解凍してファイルを展開します。
(今回は「C:\opencv-3.2.0\sources」に展開したものとします)

OpenCVの準備

CMake(cmake-gui)を起動します。
※管理者として実行します

まずはソースのあるフォルダと、出力先のフォルダを指定します。
出力先は存在しないフォルダを指定しても大丈夫です。
image1.png

次に「Configure」ボタンを押します。
この時、出力先のフォルダがないときは、以下のダイアログが表示されます。
image2.png

作成するVisualStudioのバージョンを聞かれますので、今回は2012を指定します。(Win64ではありません)
image3.png

「Finish」ボタンを押すと処理が実行されるのですが、残念ながらエラーになります。
image4.png

そこで、CUDAの設定をOFFにします。
image5.png
その後、「Configure」ボタンを押すと、無事、処理が終了します。
さらに「Generate」ボタンを押すと、出力先にプロジェクトファイル「OpenCV.sln」が出力されます。

OpenCVのビルド

出力された「OpenCV.sln」をVisualStudio 2012で開きます。
image6.png

その後「INSTALL」プロジェクトのビルドを行います。
※ちゃんと「Release」「Win32」にしてビルドすること

その結果、インクルードファイルは「C:\opencv-3.2.0\build\include」に、ビルドされたライブラリは「C:\opencv-3.2.0\build\install\x86\vc11\lib」に、DLLは「C:\opencv-3.2.0\build\install\x86\vc11\bin」に出力されます。

※バージョンや環境によっては違う場所にできることがあります
 3.3.1→「C:\opencv\build\lib」「c:\opencv\build\bin」

最後に

CMakeでエラーになったあと、そこから設定変更を行うという流れが、気分的によろしくないのですが、GUIでできるのは便利かもしれません。
でもどれを外せばいいかなどは、試行錯誤になりそうです。
(エラーメッセージからは判断付きづらい)

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした