回答編集履歴
4
d
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
answer
CHANGED
@@ -9,23 +9,17 @@
|
|
9
9
|
|
10
10
|
## 追記
|
11
11
|
|
12
|
-
OpenCV を使ったプロジェクトをビルドする場合、include ディレクトリやライブラリのリンクが面倒なので、CMake を使ってビルドするのが一般的と思われます。
|
13
|
-
|
12
|
+
### 1. 以下のようなフォルダ構成を用意する。
|
14
13
|
|
15
14
|
```
|
16
|
-
$ cd <CMakeLists.txt があるディレクトリ>
|
17
|
-
$ mkdir build
|
18
|
-
$ cd build
|
19
|
-
$ cmake ..
|
20
|
-
|
15
|
+
sample
|
16
|
+
├── CMakeLists.txt (ファイル)
|
17
|
+
├── build (ディレクトリ)
|
18
|
+
└── src (ディレクトリ)
|
19
|
+
└── main.cpp (ファイル)
|
21
20
|
```
|
22
21
|
|
23
|
-
```
|
24
|
-
|
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
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
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
|
+
```
|