回答編集履歴

4

d

2019/01/10 07:29

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -118,7 +118,7 @@
118
118
 
119
119
 
120
120
 
121
- ## 2. ビルドする。
121
+ ## 2. cmake する。
122
122
 
123
123
 
124
124
 
@@ -128,6 +128,38 @@
128
128
 
129
129
  $ cmake ..
130
130
 
131
+ ```
132
+
133
+
134
+
135
+ もし、cmake で以下のエラーが出たら、OpenCV がある場所を自動で見つけられなかったので、OpenCV をインストールした場所を次のように引数で教えてあげる。
136
+
137
+
138
+
139
+ ```
140
+
141
+ Could not find a package configuration file provided by "OpenCV" with any
142
+
143
+ of the following names:
144
+
145
+ ```
146
+
147
+
148
+
149
+ ```
150
+
151
+ cmake .. -DCMAKE_PREFIX_PATH=<OpenCV をインストールした場所>
152
+
153
+ ```
154
+
155
+
156
+
157
+ ## 3. ビルドする。
158
+
159
+
160
+
161
+ ```
162
+
131
163
  $ make
132
164
 
133
165
  ```

3

d

2019/01/10 07:29

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -20,39 +20,27 @@
20
20
 
21
21
 
22
22
 
23
- OpenCV を使ったプロジェクトをビルドする場合、include ディレクトリやライブラリのリンクが面倒なので、CMake を使ってビルドするのが一般的と思われます。
24
-
25
- CMake でビルドする場合は以下のようなフォルダ構成にし、次のコマンドでビルドします。
23
+ ### 1. 以下のようなフォルダ構成を用意
26
24
 
27
25
 
28
26
 
29
27
  ```
30
28
 
31
- $ cd <CMakeLists.txt があるディレクトリ>
29
+ sample
32
30
 
33
- $ mkdir build
31
+ ├── CMakeLists.txt (ファイル)
34
32
 
35
- $ cd build
33
+ ├── build (ディレクトリ)
36
34
 
37
- $ cmake ..
35
+ └── src (ディレクトリ)
38
36
 
39
- $ make
37
+ └── main.cpp (ファイル)
40
38
 
41
39
  ```
42
40
 
43
41
 
44
42
 
45
- ```
46
-
47
- ├── CMakeLists.txt
43
+ CMakeLists.txt と main.cpp の中身は以下とする。
48
-
49
- ├── build
50
-
51
- └── src
52
-
53
- └── main.cpp
54
-
55
- ```
56
44
 
57
45
 
58
46
 
@@ -127,3 +115,19 @@
127
115
  }
128
116
 
129
117
  ```
118
+
119
+
120
+
121
+ ## 2. ビルドする。
122
+
123
+
124
+
125
+ ```
126
+
127
+ $ cd <sample ディレクトリがある場所>/build
128
+
129
+ $ cmake ..
130
+
131
+ $ make
132
+
133
+ ```

2

d

2019/01/10 07:24

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -30,7 +30,11 @@
30
30
 
31
31
  $ cd <CMakeLists.txt があるディレクトリ>
32
32
 
33
+ $ mkdir build
34
+
35
+ $ cd build
36
+
33
- $ cmake .
37
+ $ cmake ..
34
38
 
35
39
  $ make
36
40
 
@@ -41,6 +45,8 @@
41
45
  ```
42
46
 
43
47
  ├── CMakeLists.txt
48
+
49
+ ├── build
44
50
 
45
51
  └── src
46
52
 

1

d

2019/01/09 14:01

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -9,3 +9,115 @@
9
9
  `g++ -o -std=c++11 main main.cc pkg-config --cflags --libs opencv2`
10
10
 
11
11
  のように C++11 オプションを有効にしてみてはどうでしょうか。
12
+
13
+
14
+
15
+ ----
16
+
17
+
18
+
19
+ ## 追記
20
+
21
+
22
+
23
+ OpenCV を使ったプロジェクトをビルドする場合、include ディレクトリやライブラリのリンクが面倒なので、CMake を使ってビルドするのが一般的と思われます。
24
+
25
+ CMake でビルドする場合は以下のようなフォルダ構成にし、次のコマンドでビルドします。
26
+
27
+
28
+
29
+ ```
30
+
31
+ $ cd <CMakeLists.txt があるディレクトリ>
32
+
33
+ $ cmake .
34
+
35
+ $ make
36
+
37
+ ```
38
+
39
+
40
+
41
+ ```
42
+
43
+ ├── CMakeLists.txt
44
+
45
+ └── src
46
+
47
+ └── main.cpp
48
+
49
+ ```
50
+
51
+
52
+
53
+ CMakeLists.txt
54
+
55
+ ```cmake
56
+
57
+ cmake_minimum_required(VERSION 2.8)
58
+
59
+
60
+
61
+ set (CMAKE_CXX_STANDARD 11)
62
+
63
+ project(sample)
64
+
65
+ add_executable(${PROJECT_NAME} src/main.cpp)
66
+
67
+
68
+
69
+ find_package(OpenCV REQUIRED)
70
+
71
+ include_directories(${OpenCV_INCLUDE_DIRS})
72
+
73
+ target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
74
+
75
+ ```
76
+
77
+
78
+
79
+ main.cpp
80
+
81
+ ```cpp
82
+
83
+ #include <opencv2/opencv.hpp>
84
+
85
+
86
+
87
+ int main(int argc, char *argv[])
88
+
89
+ {
90
+
91
+ if (argc == 1)
92
+
93
+ {
94
+
95
+ std::cerr << "sample.exe <image_filepath>" << std::endl;
96
+
97
+ return 1;
98
+
99
+ }
100
+
101
+
102
+
103
+ cv::Mat img = cv::imread(argv[1]);
104
+
105
+ if (img.empty())
106
+
107
+ return 1;
108
+
109
+
110
+
111
+ cv::imshow("image", img);
112
+
113
+ cv::waitKey(0);
114
+
115
+
116
+
117
+ cv::destroyAllWindows();
118
+
119
+ return 0;
120
+
121
+ }
122
+
123
+ ```