EDA365电子论坛网

标题: Linux 下编译安装OpenCV [打印本页]

作者: thinkfunny    时间: 2021-4-14 09:02
标题: Linux 下编译安装OpenCV
本帖最后由 thinkfunny 于 2021-4-14 09:03 编辑 2 ~6 x% e4 m+ m2 p3 Z

4 n' C: n4 q6 I- Z- I2 |/ a5 h  
0 q5 u$ y' ]& X% q% n% \& _( w' V$ E/ A! d9 ?7 A3 l5 S( {
Cmake的安装
# Y6 k8 h1 d: ?+ m/ T: fOpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装cmake。$ x+ i* `2 ?  W) E- J

2 f% w' S/ z6 s1 _ubuntu下安装cmake比较简单,+ b1 w1 R$ }% I: v% I% O! a+ d
6 X3 e! A' H$ }
apt-get install cmake# E: L! o: l/ _5 ^- I" p
" U4 \8 F# P& N; ^. m/ _7 r7 }/ d8 v
如果觉得自带的版本不符合要求,可以下载安装包。
/ s3 J3 Q) u- K: l4 Z$ ?$ @9 E+ g" l/ O6 z9 J  g9 W
下载最新版的安装包:& O$ y1 }( v" O1 K: N! ]' ~2 r
8 J+ o: Y+ ~6 F' Z
http:/ /www.cmake.org/cmake/resources/software.html
" H9 |: s' E. Y$ C3 Y$ w/ r% J  `
  r$ j& j! d7 S. m这里下载已经编译好的,这样只需要解压至需要的目录下即可使用:
7 z, ^& D! \: G0 `8 I. B
- V/ e- f# e7 t" s& C- ?9 Atar zxvf cmake-2.8.10.2-Linux-i386.tar.gz –C /usr/local/# A1 Z7 X4 }# c
7 {! l" \, I& S0 n- r3 [
设置环境变量:
: w( `# L. O0 M5 C; {1 Q
! V4 _3 R/ r) y5 Bsudo gedit /home/emouse/.bashrc6 _: V! X/ n4 u$ U+ K
4 m' S+ z9 Y: ]5 ~
在打开的文件后添加:
! g; y/ B5 d2 m; w5 W0 q  C
& z! c* d7 `+ z* Xexport PATH=$PATH:/usr/local/cmake-2.8.10.2-Linux-i386/bin3 E* Q8 p" P. D0 ]5 p) t! Q, v1 t

7 x, l; P% u3 O' T查看版本,测试是否安装成功:
, y% I) l: x1 Y( C, e' {8 L
8 k* l9 V) R, X( f0 i% S% s/ _root@emouse:/home# cmake --version 2 k, z* R% `  I* v# ^
cmake version 2.8.10.2
/ a/ X. c# ~( A1 A/ k0 M+ A; c2 R! a1 W3 ]( l; ?. s

5 F# G, z. ~+ s( X: u6 y
5 m5 g( _' R8 s( C3 g/ @Ubuntu 下安装 OpenCV
/ g+ o- i7 i5 y7 r! u7 E. `; |4 `6 L+ D3 X: [; u: i
软件环境:+ X5 t8 [' l5 F3 \1 ?  K& x
; @" C- j; m( o' o* ~) V
Ubuntu 12.04
5 T% u, s& Z6 {6 s  d' l; h% k$ A6 v8 k1 A
OpenCV 2.4.32 H) N. L6 m+ b' j" r4 @2 a" F2 X

$ ^8 Y" k' F# l: W- h  ?. QCmake 2.8.10.19 b0 C9 `$ P; w- C! _
: x9 t  M1 t# Y& z, H5 }
gcc 4.6.3 (系统默认)" `# Q  E6 _. m3 E

% R$ P7 e0 j, ^7 w, ], P : ^- U: _3 x; [1 M4 K$ D
$ P) @+ V' d9 ^7 R; Z8 _, @4 d
1、先安装 libgtk2.0-dev 和 pkg-config,,否则后期编译运行程序会出现类似如下的问题:
# a2 r, V+ ]1 \$ R0 x( `
- D/ S1 j9 k0 R. U' KOpenCV Error: Unspecified error (The function is not implemented. Rebuild the library with Windows, GTK+ 2.x or Carbon support. If you are on Ubuntu or Debian, install libgtk2.0-dev and pkg-config, then re-run cmake or configure script) in cvNamedWindow, file /usr/local/opencv/OpenCV-2.0.0/src/highgui/window.cpp, line 100 & I1 \( [% F# s- q8 I: f7 D6 w( f
terminate called after throwing an instance of 'cv::Exception'6 S# p+ Q" L6 ~; v  q' D! {5 f- y% }6 q

' V/ Y$ K1 f% Y+ w; ~. y通过网络获取安装:& K3 I# m: @' {; m5 _5 s6 r& q1 x
. }0 u5 Y6 ?1 h: j, q* H% k
9 P4 H. J! ^2 {, T2 `  P( ~
0 F( }$ o8 J3 ]1 X1 ~4 f7 S: o
$ y. e5 f$ Y1 l) A- Z8 K8 w
2、下载OpenCV ,文件名:OpenCV-2.4.3.tar.bz2,下载地址:4 R8 F; d) ^, `& N* N

1 H; Y" s3 P  ~6 X+ H2 `8 Chttp:/ /www.opencv.org.cn/index.php/Download
4 E0 \* E  B4 Q5 D- t
2 {; m0 K  M1 G1 q5 ]解压:6 N  @# X) y( W$ {' J
% K3 d. B$ g& Y' i& A7 h
#tar jxvf OpenCV-2.4.3.tar.bz2
8 G2 D. p+ N$ q& g7 ]9 Y# E4 d  W9 q* k
得到文件夹 OpenCV-2.4.3" c6 q( f, P- e/ u6 x" a4 s
/ z3 p$ V. w6 ^0 J
这里新建一个文件夹OpenCV-x86作为PC编译目录。& W  l; `! ]0 Q7 e: F' P! B

2 V7 N4 \4 z$ x) E/ o5 L$ p9 F
' T) Y8 V6 g8 D: X- t3 f% W% F; h, G4 z0 G4 r& c$ s2 A
3、#cmake-gui 打开cmake的gui界面,开始进行配置。
, Y7 T8 p8 t( S, r* o5 x5 [* y5 n0 c4 I' p; p
cmake主要用于进行一些配置设定,从而生成用于编译安装的makefile文件,通过界面进行参数的配置和设定,非常直观、方便。在配置中指定源码和编译目录以及生成方式。
% A% i$ P9 L: o( m3 G+ a) r
+ |  X4 |2 Z, S/ ]按照下图的步骤进行配置:8 B. `+ B8 {* g) ?
8 }5 _8 |0 L0 D+ Y5 F* J  p) ?
* Q. q9 H, R6 p% j; ]  k8 {8 Q
" ^8 ]& Q" }* u+ M8 P1 m

3 V" C4 ^/ a* C: c& g点击Finish后cmake即载入默认配置,如下图所示:. o0 R' d8 t! T( F' i* r6 t& j+ ~

% i9 s/ D0 w0 S5 V& L  f5 U+ i
) N. i9 I1 K& V
# x& W" C. s" O8 M3 W/ G# Z. T/ ?0 h5 }
如图所示,窗口的中间部分即配置列表,这里和使用cmake命令直接生成makefile文件一致的,如) ?& X4 i1 G6 y

8 G' P( Y$ j: J- Q; v; q6 e% }% w$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/OpenCV
3 B/ V0 r. H" u' J; y7 m+ @1 l) p7 y: ]$ a( g4 P$ `! S" ]
只是这里通过图形界面的方式来进行配置,更加直观方便。; J) F& M! o/ J! o  C8 k

8 P! p2 |/ m; j. I, C这里指对一个地方进行修改,CMAKE_BUILD_TYPE 值输入RELEASE,其他保持不变,图中蓝色虚线部分显示了默认的安装目录,生成makefile文件最后执行 make install时就会安装到这个目录,这里可以根据个人需求更改。在这里的配置中我勾选了WITH_QT 去掉了WITH_TIFF,其他更多的配置也不清楚,OpenCV中文网站也没找到系统的说明,这里暂时不深究,点击Generate生成配置文件。7 l; t7 O7 H) f

7 q" b) p* C8 C/ E8 J2 {进入OpenCV-x86目录可以查看Makefile文件,可以留意文件的生成时间是否和刚才的生成时间一致。  U9 J9 m& S# F. ?+ l0 f

% d% ?: T: v, U* ^8 N% G3 z4、接下来在OpenCV-x86 分别执行make和make install即可完成编译安装。
( |4 C6 Z- g8 W. O8 g3 B- W0 g( M( Y
5、安装完成后需要对系统相关环境变量进行配置:+ w5 h+ q" f1 J: ?- t+ p* V
4 _8 I! e! ~3 q7 ^  i
$ g; W8 `5 G8 |

- T9 E, W* `. \+ f, n7 ]9 @将以下内容添加到最后:
7 q( A" |: o; L: l( i
( J2 {% n3 }5 q) c% p6 p0 w/usr/local/lib! _2 C, }0 P/ `! N9 J" ^' \6 t
4 F, b* d9 c" O  g. n8 V; b& Y
接下来配置库:
- f& M* k/ v3 y! ~' Z7 h4 g* \
2 v0 R& E% T! |% i7 j; s; f 9 ?0 C( T2 z) s0 ?0 a2 f1 ~
& L$ c! O9 i0 {7 E7 g5 a, \1 W
更改环境变量:% M6 u5 A6 |. c+ p- P' e8 U
' h$ \: [% Z. t- \$ n* g
8 c) }/ E/ A( ^( y

8 q" C3 U5 X* d) Q在文件后添加:* s& {" x5 W8 G

; I) n4 E3 R) r, Z5 b( n
) t  T, ]. \- Y$ a6 Q( e# l$ G& Y  I/ q) V8 A% R
保存退出,在运行下面的例程之前,需要重新开启终端来使配置生效。- K& O9 f! S- P, e3 h  q

! e% z: I2 h6 x( }) f8 S! A5 r
5 p1 y& Z/ U$ c2 n+ p' h# |例程测试& r5 A5 D; ?" F& R* T5 ^8 h
) T' H. n2 y7 l& c, L
拷贝步骤2中解压的的/OpenCV-2.4.3/samples/c 将c文件夹拷贝出来,下面运行一下这里面的一个例程,初步体验下OpenCV。拷贝完成后进入这个文件夹:
7 K, A2 `# {3 Q3 G# P; ~* y- o
. _/ V1 e# h, ?chmod +x build_all.sh
0 f9 v4 ]) ^+ x( q! U9 Z
2 J( q9 a0 B# H./build_all.sh) i% M# U- P" A
' S; f6 _! z# `" W9 J5 I+ v" W+ }% n) Q
这样就对例程目录下的源文件进行了编译,这里运行一个人脸检测的程序,下面摘录自本文参考资料3。6 Y8 W4 |8 J, T0 R/ G( j$ @0 r' I
2 n% ]9 @* z& S4 W7 O9 W# [
Some of the training data for object detection is stored in /usr/local/share/opencv/haarcascades. You need to tell OpenCV which training data to use. I will use one of the frontal face detectors available. Let’s find a face:
2 J+ j; }) F) ]+ @! G% a
+ O, o+ }4 G6 x* @0 P, z  N终端中运行:0 T9 V' N: X4 \5 ]6 G

6 w. X' ~3 x) D) I# J
: K: K3 s  p+ B1 Y8 Q8 N; _- F# C
得到的结果如下图:7 i( Z- ^. j% }* O$ j3 F

3 H& V. O/ E) B) ?( k. b9 _" q( `3 K , Y( L4 }* `. `
0 {" ^3 b! D0 f. w# d- R

/ B5 L6 M9 }1 b& y
8 j7 z9 R$ g, G8 u到这里基本的就写完了,OpenCV我之前也没有任何基础,这里只是把平台配置起来跑通,后续的工作还有很多,欢迎各位参考。
) Q2 n$ p+ |% Q- Z. F% a
作者: ExxNEN    时间: 2021-4-14 10:51
Linux 下编译安装OpenCV




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2