找回密码
 注册
关于网站域名变更的通知
查看: 464|回复: 1
打印 上一主题 下一主题

Linux 下编译安装OpenCV

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-4-14 09:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 thinkfunny 于 2021-4-14 09:03 编辑
' Q5 u4 C- a' S- l8 d: G/ T. y' ~7 Z+ R! s" X
  • OpenCV 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 cvShowImage, file /home/chengchenglu/work/Opencv/opencv-3.4.0/modules/highgui/src/window.cpp, line 611
  • terminate called after throwing an instance of 'cv::Exception'
  •   what():  /home/chengchenglu/work/Opencv/opencv-3.4.0/modules/highgui/src/window.cpp:611: error: (-2) 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 function cvShowImage
  • Aborted (core dumped)
    - C! b7 f2 k" E+ H- {( c$ g
  
; n4 z0 z+ F7 I; w! ~" D, B8 N. t1 e; }  N
Cmake的安装
8 M6 C" D7 }. L( nOpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装cmake。
/ B$ |" H6 [# C) P& `4 G: X6 W4 q' C4 G& }1 ^5 |
ubuntu下安装cmake比较简单,
! g, B# u4 A4 b: i8 p* G% P
" D& Q- P( ]( o+ ~& f3 h( q/ eapt-get install cmake
" o0 G* b/ S) `6 g+ u" S- Q3 K, J- b" ~: t1 Q) Q* d: P
如果觉得自带的版本不符合要求,可以下载安装包。0 E' I9 @* q" G4 J# K" c

: P. t: o5 O* U2 u- t, C下载最新版的安装包:1 J+ y' q7 L( ?% Z7 T

0 K. |  t) B2 O1 [7 e: B  z9 ]http:/ /www.cmake.org/cmake/resources/software.html5 f6 A; g" e# w* }

* ^4 n" l/ k! i9 s. q这里下载已经编译好的,这样只需要解压至需要的目录下即可使用:& ~8 a* ]8 c* ]9 i0 R4 [

5 V  l1 D# o1 k9 htar zxvf cmake-2.8.10.2-Linux-i386.tar.gz –C /usr/local/1 Z9 i8 ?1 s4 E! K' C

4 v  J  F' `1 U) W! n* }$ T0 z4 _设置环境变量:
4 c9 H' S$ o% p1 ^2 x0 M8 g" b' V' g$ a9 A5 J
sudo gedit /home/emouse/.bashrc
: o1 [- }3 j' A/ K8 Z; H1 B* M6 T! q. e/ {4 ^- T0 o
在打开的文件后添加:
5 F% K" `8 h8 F1 P* I! [8 ~4 g8 T' k0 v% m( {
export PATH=$PATH:/usr/local/cmake-2.8.10.2-Linux-i386/bin% C. `5 O) e% ^5 V6 j# C

* T0 ?0 u" \$ ^$ d* L% T查看版本,测试是否安装成功:* Z/ X- e) F7 ~0 b+ C; U

( ~3 H9 P; a  t) wroot@emouse:/home# cmake --version 5 V. x: R4 L- H
cmake version 2.8.10.2
: \! p7 D% ^# |, P  L
' U. O& q" |5 f: U, g9 ~6 d! H$ h* s, z0 M" @( S( f7 @( C: ]

7 C- L6 k, ^% o! U9 lUbuntu 下安装 OpenCV
% B/ ], K& b7 N+ g- m* h2 P& x) R/ J# U" |" j- X0 U7 N0 x1 P
软件环境:
* S0 d$ i" ?; o' R, m5 r# `) O) H3 v! e$ P
Ubuntu 12.04
- j8 C0 c- Z6 w+ j% P; F+ C% i
, n0 u) d. U/ H; P( J2 uOpenCV 2.4.3
- l3 P+ M6 \" [! [& s. Y9 V: N4 ]+ y; w+ _# B; ~& B
Cmake 2.8.10.14 m# ^, L6 A& Z( R9 \
+ _) o9 m+ u# s' |, H. H* @9 G; X- ?
gcc 4.6.3 (系统默认)
& ~( L* R; M, Y& v7 j+ r% M
! e7 \" J2 E5 U2 K + _5 f7 x# d* V( y6 i+ r- L9 p

( f* `* u" t& z( c+ l1、先安装 libgtk2.0-dev 和 pkg-config,,否则后期编译运行程序会出现类似如下的问题:( o4 g$ z1 l/ A

- L- b. M2 r+ }' G, P9 gOpenCV 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
5 S; r8 J9 p& V; T! c" i2 Jterminate called after throwing an instance of 'cv::Exception'! e; c* `! [) ?: D9 ^0 e- l. b

* T) F& H& l! Z9 M通过网络获取安装:& M' H% p; W, W! N* S; e" h+ e3 I
" S) ^' s! Z  h) _5 U
  • # apt-get install libgtk2.0-dev
  • # apt-get install pkg-config2 u( W$ Z$ l* B
4 V; J# H% d" E" H! p( F
% }) z# I2 i3 Q5 v. ]! {: a
9 J, d. c$ y% G: K
2、下载OpenCV ,文件名:OpenCV-2.4.3.tar.bz2,下载地址:
) o0 ^& \0 o# ?" C2 K/ Z/ K' e- U9 V  F9 N' J( n
http:/ /www.opencv.org.cn/index.php/Download% ^) ?) s! c- ?0 C$ a, P  \# [" V: U
$ b$ ?, B, L- M
解压:: x7 C7 b/ H& H0 ]; N& F( {8 N

( m) k- l! J4 K' M#tar jxvf OpenCV-2.4.3.tar.bz2
2 _7 M8 a8 N/ d) Z6 {4 k" e' U; m4 N- d1 j
得到文件夹 OpenCV-2.4.3
( |& v$ P5 |7 s( C1 U7 h. f2 W( s: o" [+ l
这里新建一个文件夹OpenCV-x86作为PC编译目录。0 l: K4 c5 }% B9 T3 p# u: O
/ {) r% H  v& d9 F# K* X1 A# g+ i: ^* |. W

3 ]4 M2 I, {; a4 W) t
' @+ ~- [9 Q9 y% H  s* \; P! u0 V3、#cmake-gui 打开cmake的gui界面,开始进行配置。' M: v$ A5 j5 Y

2 D' ~; ?* S% T2 Wcmake主要用于进行一些配置设定,从而生成用于编译安装的makefile文件,通过界面进行参数的配置和设定,非常直观、方便。在配置中指定源码和编译目录以及生成方式。
1 z& j& z5 d. m3 {9 z" X
  x- e+ {3 H: y6 t; g' G+ s2 d$ M+ ~按照下图的步骤进行配置:
( o3 b2 R; k* r6 @5 x2 A5 b1 R3 S" j9 K- C: x3 b
  D2 o; @. }. N1 }2 N$ k# x; i9 F
8 k* u0 [7 k3 z5 B/ \, J5 C. Z, }- N
; \4 F" u% F8 g/ _3 k* P
点击Finish后cmake即载入默认配置,如下图所示:! @. V7 s1 K3 E. J& Q5 k

1 @# l3 r3 g8 ~/ Y! n9 o
5 p; M5 v+ M, x
& J, c) `+ k2 a* [$ h  x3 H; r" z* V4 H# y7 F, x
如图所示,窗口的中间部分即配置列表,这里和使用cmake命令直接生成makefile文件一致的,如# f/ @" i" M: T, G, |  ~, @5 g
1 Z. q, `" r  B) E/ u
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/OpenCV
3 ^! F2 z3 S3 I3 Q7 a+ j
; N$ c% x  Q" B2 u5 ^0 m只是这里通过图形界面的方式来进行配置,更加直观方便。
! D& L" Y& p% e* T8 x: q, x! O6 ]1 j7 v6 |; s
这里指对一个地方进行修改,CMAKE_BUILD_TYPE 值输入RELEASE,其他保持不变,图中蓝色虚线部分显示了默认的安装目录,生成makefile文件最后执行 make install时就会安装到这个目录,这里可以根据个人需求更改。在这里的配置中我勾选了WITH_QT 去掉了WITH_TIFF,其他更多的配置也不清楚,OpenCV中文网站也没找到系统的说明,这里暂时不深究,点击Generate生成配置文件。. r) h8 g9 e  r& \9 S8 e/ p
5 x2 v, [4 x3 U+ G, L/ A9 p
进入OpenCV-x86目录可以查看Makefile文件,可以留意文件的生成时间是否和刚才的生成时间一致。
, I' J9 u( t( U0 _& s
& e- i4 n6 @: g9 g4、接下来在OpenCV-x86 分别执行make和make install即可完成编译安装。% R9 t8 x" i( D% d$ f
5 I$ V1 J1 V' ?5 M- u: d8 q
5、安装完成后需要对系统相关环境变量进行配置:
1 r1 U, N" I! G% K+ v! M3 `. x) m* J1 i: ?! d
  • sudo gedit /etc/ld.so.conf.d/opencv.conf
    ( P  F7 ~3 {& @  e  v+ c2 C
; a' g" ]" u% f" S  W* Q* f* K6 x
4 q8 M" Y3 x. t& |& C, Z
将以下内容添加到最后:8 H; A" d' K) K- Z2 ^' R
4 `0 _) E' v; P" L0 t8 z( v4 y
/usr/local/lib: O3 z5 W# W2 l+ f0 Q( E: H& m, h

. N) d$ b* L  S/ J% N接下来配置库:( |  K8 O9 x+ M" j( }; v7 x+ r9 `

, U* M7 i' p7 L/ S* F
  • sudo ldconfig( u% P; s  t' o* P& o1 B
" z+ R7 i7 |0 l0 }* m

( W- ?* d, p7 Q! R2 g更改环境变量:
& I, m$ g9 @* ]/ I8 H0 b& ?& e& p5 b+ N& T
  • sudo gedit /etc/bash.bashrc5 V" I; H. j3 c" v' p5 [4 ?

/ v' e: u) Q1 u, M$ @3 n* s6 O" H( |7 Q7 P0 K, V, s
在文件后添加:  ]1 U9 H& q3 F2 {9 i% m. H

5 J) H# g) V8 e7 m* w0 N+ m6 ?3 ]7 M
  • PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
  • export PKG_CONFIG_PATH6 k7 F* @; y- O5 k
4 F* @9 r- O2 z) K

% n0 Y3 Y6 `8 f, n, Y保存退出,在运行下面的例程之前,需要重新开启终端来使配置生效。
. |/ H4 _( {: W: Y! C
3 o+ v& O2 s% p# Q, I6 w+ C
4 p5 ~8 g0 ]2 j* E$ @7 B4 V% z- H例程测试7 V8 y$ `- F& o9 G( ]7 f- u+ R1 G# o
; s) k9 H, m; \
拷贝步骤2中解压的的/OpenCV-2.4.3/samples/c 将c文件夹拷贝出来,下面运行一下这里面的一个例程,初步体验下OpenCV。拷贝完成后进入这个文件夹:: W$ R' Q$ ^% S" a' N: ?( n

/ _0 @& @2 |6 Z( ~: y3 B4 ]chmod +x build_all.sh4 o+ [+ k, o1 F% B' g0 _  X( p% ?
' m" S8 K# [3 f' k! L7 K
./build_all.sh% B3 V' @' H) z4 J9 s) e7 t$ J
2 ~. B, H1 t. U' P% i& ]
这样就对例程目录下的源文件进行了编译,这里运行一个人脸检测的程序,下面摘录自本文参考资料3。$ i; Y2 i( p' }* R5 f0 M

4 m2 b# _1 I* K4 k9 GSome 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:
% [0 I9 n8 ]; w" H# |5 ^( B: A$ J" P4 q: U0 S
终端中运行:4 t, s9 v" C  \9 t1 Q( \
8 u) q* |; ?- `% ^' r1 Y
  • ./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg
    + t# K/ O8 s0 q0 ^* e

! h9 e! S, Q( O* }1 W; ^! l* N4 g3 q5 n4 d% V, S" v/ G0 a( Y
得到的结果如下图:* o3 ^( E5 {5 w4 n! H

$ b; y" `* u6 D- {9 L4 b+ M) M9 a 1 D& d% t; C/ V6 l2 v9 ^" S

- V! B/ g+ B7 ^! o 4 s0 o, W& O1 _  A$ o7 S$ M1 J

+ k" E; B; C; x; O. a' f到这里基本的就写完了,OpenCV我之前也没有任何基础,这里只是把平台配置起来跑通,后续的工作还有很多,欢迎各位参考。
# q- P1 F' A( S! Q  k& e* \

该用户从未签到

2#
发表于 2021-4-14 10:51 | 只看该作者
Linux 下编译安装OpenCV
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 15:05 , Processed in 0.218750 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表