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

Linux 下编译安装OpenCV

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 thinkfunny 于 2021-4-14 09:03 编辑 4 c5 T& J1 B6 B* T

' y, q! h8 R  P- y
  • 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)" R6 Y; Y  v9 Y, |" `' W
  
5 E/ h' }3 ~: r- N, r% C7 ?" \! G( }
3 {- h- A- L% GCmake的安装
) _, K! f2 K3 ?7 Y5 oOpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装cmake。6 y6 h7 L$ v+ |, z- o; B/ e
0 F8 b: w( C, v% X) w
ubuntu下安装cmake比较简单,$ X" Q( |( m7 w" t: a1 @

' n5 ?* Y6 x; t9 ]0 I* Vapt-get install cmake
( }% i; W. F. \% ^" [6 K
$ w/ H3 ]' g$ H) i, c如果觉得自带的版本不符合要求,可以下载安装包。8 @  l! O' I0 `$ j
6 j. R+ [9 f3 P
下载最新版的安装包:- h3 p/ f8 w8 c
" s, }* b' U8 i: N# n. Z
http:/ /www.cmake.org/cmake/resources/software.html2 b( ]5 r+ @1 q- ~# d6 I9 }

% q, P: }: S) t7 k' Y, q! g这里下载已经编译好的,这样只需要解压至需要的目录下即可使用:5 e# Q; k+ O, J. E" g
3 ]5 d7 K. u+ C; X* L
tar zxvf cmake-2.8.10.2-Linux-i386.tar.gz –C /usr/local/8 {$ N8 z: s* w& z' {4 m& I1 ~2 l

, U; I' K( T/ ^% ^) r设置环境变量:- c9 C1 R$ g: M3 Z2 j

/ K1 j; p' I$ d2 Q( t/ v' csudo gedit /home/emouse/.bashrc
9 w2 q9 V& R4 W4 W0 R1 Z  c0 G. Y5 B' A, }) v7 x- {
在打开的文件后添加:
# k* E# E1 o7 ^* i5 w# Q& }/ [9 d& X0 M$ ~+ Y2 r
export PATH=$PATH:/usr/local/cmake-2.8.10.2-Linux-i386/bin
! ?( j, D4 e# O; g+ A: C) e! O& I/ v+ m6 `( c* s0 S1 s( B! t
查看版本,测试是否安装成功:
# M- w4 l+ [& ]) {) w# i
& b5 ^6 o2 X& j7 [% Kroot@emouse:/home# cmake --version
6 M. \" ?9 R  _cmake version 2.8.10.2
4 ]; \$ p+ U7 M7 l2 P1 H; R: `
8 t2 _- N; Y4 t2 ~2 w
$ s( n- `! R* F/ C3 }3 l  p
1 G+ Q$ S( A3 R8 ]Ubuntu 下安装 OpenCV0 S5 i- @' @* P) r2 \! r$ h0 X, {. q
$ c$ ^4 G/ Z3 n) t5 `# \
软件环境:% z" i2 g& D6 ~3 L1 V

4 Z& f2 `; ?8 t9 YUbuntu 12.04( J* ?, g5 o* t
2 ~& {( {3 j% S& W
OpenCV 2.4.35 N6 \3 V: ~4 o" _( v1 m

( X8 ]% L) K2 o( K+ d2 z0 [6 jCmake 2.8.10.11 {1 l* J" o/ c6 l) P$ [

, }) x  Y+ |( T  h1 Z' M* @gcc 4.6.3 (系统默认)5 C- P0 g$ I% R9 Z4 r

& [( P! N* p  i  D 8 Y9 `6 c8 {  f

4 A1 h( c: D: s  R. _0 T1、先安装 libgtk2.0-dev 和 pkg-config,,否则后期编译运行程序会出现类似如下的问题:) s  r. m& z( N7 t/ n

! j3 y! }$ U# Y& U! X* [" DOpenCV 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
6 F, h/ n- E2 k" n) d* O  h$ ]terminate called after throwing an instance of 'cv::Exception'
# j( h9 o+ x% E0 _$ J% s
  g9 o: \$ l$ s% ?通过网络获取安装:7 C! }- V( H2 T* N- }

6 y  |7 D( ^6 a1 h( o
  • # apt-get install libgtk2.0-dev
  • # apt-get install pkg-config- h. H: O- Z- w* R! t6 Q' [3 d
! a9 w4 a! g1 c) g6 k4 v! Q* [

  _8 n2 `+ z4 r" J5 @3 T
% x1 m4 B8 T; L7 _1 z* x, `3 X2、下载OpenCV ,文件名:OpenCV-2.4.3.tar.bz2,下载地址:8 W$ N/ m3 p3 m$ {4 n) n- |' J
0 i) w4 E! C4 g% g5 Y- ]
http:/ /www.opencv.org.cn/index.php/Download
- R6 ^/ W  ^* `9 W0 w. ]& n& b( i; y/ S( ?
解压:
5 H; ?. P+ u5 q' O
2 I, T& U" b: n# t" w#tar jxvf OpenCV-2.4.3.tar.bz2* x; k/ ?) }8 Z1 z3 j" x; q4 @
# h& g  f# `* A+ S
得到文件夹 OpenCV-2.4.3' V( {, R8 [5 A4 s5 c

* u" }0 [  Z$ M2 y1 c% G1 M# |这里新建一个文件夹OpenCV-x86作为PC编译目录。
0 O1 f$ Q8 }( b* \% _: f) B' S2 t
* t' N" `5 r4 u* I* ^6 {3 [, m8 u2 i
5 L& B2 R/ Z8 q2 b/ a
+ z6 r3 W' a3 H2 \3、#cmake-gui 打开cmake的gui界面,开始进行配置。" F: g4 x& ]2 R0 T
/ e( m2 W2 p. ?+ H$ z
cmake主要用于进行一些配置设定,从而生成用于编译安装的makefile文件,通过界面进行参数的配置和设定,非常直观、方便。在配置中指定源码和编译目录以及生成方式。
( F2 f3 @: L1 o2 C1 T
  s1 Q) K2 \( E8 N( m" p& ?& Z1 \按照下图的步骤进行配置:
3 ^/ ^( K  j; j# V
2 T' L0 n0 Q1 J4 p! ^8 R; p   W9 V2 l4 c& }

/ W1 @# H+ r* X8 c
- N, y, L3 \5 H( g/ }! a4 G" p点击Finish后cmake即载入默认配置,如下图所示:
' m3 n8 k& M7 \( M, T
; f0 B5 g- Y2 r: U0 X8 c! `0 a8 a
" z. h# f/ T6 m- D5 j' {  k  p1 V# Y7 a& |/ W) l
, z8 Z5 L7 N3 l/ F6 t! h1 t9 t
如图所示,窗口的中间部分即配置列表,这里和使用cmake命令直接生成makefile文件一致的,如
6 r$ B( @% j0 _& \
( {% P- g7 s8 f0 I$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/OpenCV
- }# t  o+ k8 N3 E# f2 ]6 O2 \! j2 w0 Y3 b
只是这里通过图形界面的方式来进行配置,更加直观方便。& U% i& s0 |7 B' f9 l" L. R" C
4 p, y8 P7 Z6 q1 m  ?4 u8 p4 Q
这里指对一个地方进行修改,CMAKE_BUILD_TYPE 值输入RELEASE,其他保持不变,图中蓝色虚线部分显示了默认的安装目录,生成makefile文件最后执行 make install时就会安装到这个目录,这里可以根据个人需求更改。在这里的配置中我勾选了WITH_QT 去掉了WITH_TIFF,其他更多的配置也不清楚,OpenCV中文网站也没找到系统的说明,这里暂时不深究,点击Generate生成配置文件。$ \4 ]7 t5 Y. \: {8 w4 S
) S9 i3 X8 }2 S8 `. ^# x
进入OpenCV-x86目录可以查看Makefile文件,可以留意文件的生成时间是否和刚才的生成时间一致。
- t3 F; _! b. O% V$ g/ z
5 O) s& ^/ ^2 v1 Y6 F1 d- V  c0 S4、接下来在OpenCV-x86 分别执行make和make install即可完成编译安装。
# A( g& D2 B9 u& S3 A' ?; }1 i! C; l6 a$ `1 Q! `8 L
5、安装完成后需要对系统相关环境变量进行配置:/ B. S* n$ T4 g- ]. b: q$ \

. G* u1 F) K/ p  g6 |
  • sudo gedit /etc/ld.so.conf.d/opencv.conf! t/ C& Q. K% n/ S. a: B, v- ^

2 u* N7 `- G6 Z% e2 x  Q  i$ a! i4 h( H' _2 H; M( o
将以下内容添加到最后:" Q  m9 b$ ]9 y- Y6 E! v

' ^7 R7 j, r- K! Q/ B: l, \7 e/usr/local/lib* z% k) ]9 z2 K1 G3 v
4 w2 X) |5 E9 {% M: V
接下来配置库:1 ]; O5 c/ p0 O0 G( X' E

7 w( M# s/ j" Q
  • sudo ldconfig
      g$ V/ O1 R% i' u5 a+ v

: B, @$ ~1 V$ T6 E" M
  h' Q8 E0 o1 x! W- Z9 n, U更改环境变量:
0 V( A! \" j; x+ e6 e. G: U
$ X- F3 g; n) t3 C6 M( X
  • sudo gedit /etc/bash.bashrc
    6 r7 v1 y; _& s+ u( i2 H. M
6 i- \1 _% U+ V& ]8 e
: Y6 \, y3 a, K0 L* d
在文件后添加:9 l: w1 W' b' x# k
8 r/ l5 j" A4 E# p6 _9 K: I
  • PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
  • export PKG_CONFIG_PATH
    9 j( `. Y% E8 X: _9 a. r
  `3 w5 Y7 }: Q0 [& P" J# x; G( s

! j  D6 n5 w1 p# s# K" j" z  B) P保存退出,在运行下面的例程之前,需要重新开启终端来使配置生效。
/ m& y) x2 f1 h$ Z  W' O, t# Z
1 \7 `' @2 Z/ b5 R$ f. v9 y" N) L" N) a/ I
例程测试) S1 V; T: l: ^1 x% \3 ~

) B8 o; ]0 W  x( Z! A( i拷贝步骤2中解压的的/OpenCV-2.4.3/samples/c 将c文件夹拷贝出来,下面运行一下这里面的一个例程,初步体验下OpenCV。拷贝完成后进入这个文件夹:
1 o3 J7 |3 X( k: M
- E2 v7 \' m8 q* S4 Qchmod +x build_all.sh
1 e/ K5 L7 H. C3 g5 c& q: g. S5 f6 [* E
./build_all.sh$ {. r' v( j$ `* z- s  h
+ p' J2 f/ ]- M3 Q" p
这样就对例程目录下的源文件进行了编译,这里运行一个人脸检测的程序,下面摘录自本文参考资料3。
9 m" K8 q; Z" f' V: `/ H' Z) M4 p# w" x" C
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:
; K+ B4 I: w2 f0 Q8 q$ w# t, e! y; o8 l5 W' H7 m
终端中运行:1 v; ~6 C: }, x8 u3 I

; l8 l, M: a' O( K$ K: T  g/ l
  • ./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg2 g! b' D  E% C5 {& B1 j: u

+ c3 @" C4 o9 L7 T5 ?3 s2 h5 [8 r& N! M$ U# W4 H) f3 y
得到的结果如下图:' N' ~. ?7 ~$ I5 N: V
* }) a- k% V( \6 x' p# k; l

8 Y, l) s$ d2 M  w- o4 Z4 J: [" I! _) r1 S- s' q

" M' ]# C. F3 V2 J* W5 x0 W* @' }& D0 M
到这里基本的就写完了,OpenCV我之前也没有任何基础,这里只是把平台配置起来跑通,后续的工作还有很多,欢迎各位参考。
3 I7 p' k1 c1 H+ E% K

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 13:19 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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