teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

4

d

2019/01/10 07:29

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -58,10 +58,26 @@
58
58
  }
59
59
  ```
60
60
 
61
- ## 2. ビルドする。
61
+ ## 2. cmake する。
62
62
 
63
63
  ```
64
64
  $ cd <sample ディレクトリがある場所>/build
65
65
  $ cmake ..
66
+ ```
67
+
68
+ もし、cmake で以下のエラーが出たら、OpenCV がある場所を自動で見つけられなかったので、OpenCV をインストールした場所を次のように引数で教えてあげる。
69
+
70
+ ```
71
+ Could not find a package configuration file provided by "OpenCV" with any
72
+ of the following names:
73
+ ```
74
+
75
+ ```
76
+ cmake .. -DCMAKE_PREFIX_PATH=<OpenCV をインストールした場所>
77
+ ```
78
+
79
+ ## 3. ビルドする。
80
+
81
+ ```
66
82
  $ make
67
83
  ```

3

d

2019/01/10 07:29

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -9,23 +9,17 @@
9
9
 
10
10
  ## 追記
11
11
 
12
- OpenCV を使ったプロジェクトをビルドする場合、include ディレクトリやライブラリのリンクが面倒なので、CMake を使ってビルドするのが一般的と思われます。
13
- CMake でビルドする場合は以下のようなフォルダ構成にし、次のコマンドでビルドします。
12
+ ### 1. 以下のようなフォルダ構成を用意
14
13
 
15
14
  ```
16
- $ cd <CMakeLists.txt があるディレクトリ>
17
- $ mkdir build
18
- $ cd build
19
- $ cmake ..
20
- $ make
15
+ sample
16
+ ├── CMakeLists.txt (ファイル)
17
+ ├── build (ディレクトリ)
18
+ └── src (ディレクトリ)
19
+ └── main.cpp (ファイル)
21
20
  ```
22
21
 
23
- ```
24
- ├── CMakeLists.txt
22
+ CMakeLists.txt と main.cpp の中身は以下とする。
25
- ├── build
26
- └── src
27
- └── main.cpp
28
- ```
29
23
 
30
24
  CMakeLists.txt
31
25
  ```cmake
@@ -62,4 +56,12 @@
62
56
  cv::destroyAllWindows();
63
57
  return 0;
64
58
  }
59
+ ```
60
+
61
+ ## 2. ビルドする。
62
+
63
+ ```
64
+ $ cd <sample ディレクトリがある場所>/build
65
+ $ cmake ..
66
+ $ make
65
67
  ```

2

d

2019/01/10 07:24

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -14,12 +14,15 @@
14
14
 
15
15
  ```
16
16
  $ cd <CMakeLists.txt があるディレクトリ>
17
+ $ mkdir build
18
+ $ cd build
17
- $ cmake .
19
+ $ cmake ..
18
20
  $ make
19
21
  ```
20
22
 
21
23
  ```
22
24
  ├── CMakeLists.txt
25
+ ├── build
23
26
  └── src
24
27
  └── main.cpp
25
28
  ```

1

d

2019/01/09 14:01

投稿

tiitoi
tiitoi

スコア21960

answer CHANGED
@@ -3,4 +3,60 @@
3
3
  `g++ -o main main.cc pkg-config --cflags --libs opencv2`
4
4
 
5
5
  `g++ -o -std=c++11 main main.cc pkg-config --cflags --libs opencv2`
6
- のように C++11 オプションを有効にしてみてはどうでしょうか。
6
+ のように C++11 オプションを有効にしてみてはどうでしょうか。
7
+
8
+ ----
9
+
10
+ ## 追記
11
+
12
+ OpenCV を使ったプロジェクトをビルドする場合、include ディレクトリやライブラリのリンクが面倒なので、CMake を使ってビルドするのが一般的と思われます。
13
+ CMake でビルドする場合は以下のようなフォルダ構成にし、次のコマンドでビルドします。
14
+
15
+ ```
16
+ $ cd <CMakeLists.txt があるディレクトリ>
17
+ $ cmake .
18
+ $ make
19
+ ```
20
+
21
+ ```
22
+ ├── CMakeLists.txt
23
+ └── src
24
+ └── main.cpp
25
+ ```
26
+
27
+ CMakeLists.txt
28
+ ```cmake
29
+ cmake_minimum_required(VERSION 2.8)
30
+
31
+ set (CMAKE_CXX_STANDARD 11)
32
+ project(sample)
33
+ add_executable(${PROJECT_NAME} src/main.cpp)
34
+
35
+ find_package(OpenCV REQUIRED)
36
+ include_directories(${OpenCV_INCLUDE_DIRS})
37
+ target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
38
+ ```
39
+
40
+ main.cpp
41
+ ```cpp
42
+ #include <opencv2/opencv.hpp>
43
+
44
+ int main(int argc, char *argv[])
45
+ {
46
+ if (argc == 1)
47
+ {
48
+ std::cerr << "sample.exe <image_filepath>" << std::endl;
49
+ return 1;
50
+ }
51
+
52
+ cv::Mat img = cv::imread(argv[1]);
53
+ if (img.empty())
54
+ return 1;
55
+
56
+ cv::imshow("image", img);
57
+ cv::waitKey(0);
58
+
59
+ cv::destroyAllWindows();
60
+ return 0;
61
+ }
62
+ ```