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

Linux 下编译安装OpenCV

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 thinkfunny 于 2021-4-14 09:03 编辑 & q' p% W: A9 n, z" j+ N: }- U5 C

1 i. S% a) O; c+ E, p4 T( _
  • 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)
    : I+ p" ^7 w2 J
  # k( r' q  V2 m' p( I

' N$ [2 q# E( `% [: H& o2 ^Cmake的安装, H" r7 i0 V8 O6 U8 w3 h) k. m
OpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装cmake。
* ?, N1 J3 ~- ^3 Y$ i3 [1 J/ f2 }  k1 |9 w$ F; Y( M
ubuntu下安装cmake比较简单,. g: i' T. y9 [! X) e
: K" B3 t+ |8 x' C
apt-get install cmake
; K& ~/ ^2 v/ ~6 h" @8 Q/ Z
8 C# V% |7 ]  X如果觉得自带的版本不符合要求,可以下载安装包。: D* n! `/ U' Y6 [. S4 B

) J. v% R7 v( x6 J5 {( m下载最新版的安装包:
( X  \" r2 @; v3 }5 E3 \& F) V/ }
2 b0 _7 I* ]/ n- j( Lhttp:/ /www.cmake.org/cmake/resources/software.html5 |5 E8 A& B' I4 g, ?* I0 j9 K# A
& D3 h9 R7 L) ?; k
这里下载已经编译好的,这样只需要解压至需要的目录下即可使用:  v% D9 P( Z% T
& W% L0 j5 C# C4 C$ D1 t: L4 Y
tar zxvf cmake-2.8.10.2-Linux-i386.tar.gz –C /usr/local/+ D$ F! I) ^$ H/ D$ \' k

2 z* ^' p2 I1 h/ f设置环境变量:) f0 S/ |% o( ~" X, C) z
& `$ F6 x/ V* {1 l. h/ k
sudo gedit /home/emouse/.bashrc
6 v; @' y+ I. @. r
+ d5 N+ O: E5 e( ?在打开的文件后添加:9 [& S/ j' o6 ~1 K/ H+ |
+ }- q) t+ v  S
export PATH=$PATH:/usr/local/cmake-2.8.10.2-Linux-i386/bin
2 p( a% N' i' O! K6 p
" J8 Y2 H! Z% L2 @7 w# Q查看版本,测试是否安装成功:
. U+ l& E2 C3 t* |7 o" f/ l
4 O: N' E$ V' m; i9 troot@emouse:/home# cmake --version
- D1 Y& [( B# J4 h' L) [cmake version 2.8.10.2
5 M9 F' x) j5 ~
4 ]0 l2 L$ d; |9 @' [- j6 [
, v0 ^% d, U  ]+ W/ l4 E1 b4 A& n4 j3 ^! n- @
Ubuntu 下安装 OpenCV& h  ~, j" O- a/ h( O
; j. [8 L0 A: z$ h5 P+ o# ^
软件环境:9 `/ C2 @) B0 K( p& i( N- C1 z

  o2 D( a2 n+ W) D' `6 vUbuntu 12.04
7 o& F& F* p/ c$ `# D6 D/ ~/ h5 V7 E7 R* Q- K& A
OpenCV 2.4.3
0 y/ C! G' v( t/ A! ~; i: U, e, v' j: C# `4 {0 e1 J% |
Cmake 2.8.10.1% d5 f) s  D$ p# f; R0 @# I. L
; J& y; I) Y0 l4 k; v4 V- H
gcc 4.6.3 (系统默认)
' Y& d0 G# T, ?6 T. h; }
0 p2 ^- a  R9 d! M / s4 W# e; t+ N3 e
. w8 a: U5 V" U5 O) r% g1 `* u/ i
1、先安装 libgtk2.0-dev 和 pkg-config,,否则后期编译运行程序会出现类似如下的问题:" I$ b8 Z. f9 w) Z: |% @
+ w3 C& w6 A$ 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 cvNamedWindow, file /usr/local/opencv/OpenCV-2.0.0/src/highgui/window.cpp, line 100
* l5 _4 w4 Q+ J" Lterminate called after throwing an instance of 'cv::Exception'& U6 V$ P7 H2 N1 D# U* D

; `3 ^6 s# L, [6 V( ?/ q8 `: i" z通过网络获取安装:
' n4 W! Z% W8 x2 r, f% U7 f
9 k( Z- d1 B4 W4 Y7 f) K
  • # apt-get install libgtk2.0-dev
  • # apt-get install pkg-config. D6 f6 X/ f; f/ p4 T7 E# D

0 I' f9 M& z1 o9 s
+ S4 g* J5 |; ^: u& u  k+ U3 I' Y  R. B( G/ k/ E2 I
2、下载OpenCV ,文件名:OpenCV-2.4.3.tar.bz2,下载地址:
$ T  j' B: U& ?$ L' R; p
# i1 z  \! E* A) m2 E, Bhttp:/ /www.opencv.org.cn/index.php/Download! R6 C, u: F6 }: B- ~0 E, v% w" B
+ p) }7 _% |3 Z' K& R2 x
解压:  Q& q; a* @% ^. o( I

& V, j* X& \. r/ R; O#tar jxvf OpenCV-2.4.3.tar.bz2% d; q" n, f4 }# Q( V0 [7 y
: U- V; J& f) W: S1 K9 h) l
得到文件夹 OpenCV-2.4.3, g6 v1 N! p' d! Z4 w0 O% }" y- @7 [; \

- |$ i2 ~2 A7 G这里新建一个文件夹OpenCV-x86作为PC编译目录。
. `5 T% @1 l- [9 ~
  B$ `8 S8 ?  o
( B6 h1 j+ h0 ~7 s8 j, x8 o. D" R; N9 w
4 B& S+ V8 Y7 H7 [* V3、#cmake-gui 打开cmake的gui界面,开始进行配置。1 z) ]# Y; w9 U8 p$ s6 \* l
: N, I- t; _1 T$ {+ ~
cmake主要用于进行一些配置设定,从而生成用于编译安装的makefile文件,通过界面进行参数的配置和设定,非常直观、方便。在配置中指定源码和编译目录以及生成方式。
' a' h' V9 D; [) }9 m5 b# T
" X% E; l! E% Q; K( T. e按照下图的步骤进行配置:  a& K0 B9 _" l6 V# R
1 F7 Q8 c$ v% T' o

( d7 M* c5 \$ V1 R3 C, N% i4 \9 t7 m7 Y7 j  q5 d5 J$ u. |

/ l( z  y. r7 N) K9 _: E点击Finish后cmake即载入默认配置,如下图所示:
7 K* V3 Q# T9 u" {: I% K5 t1 H7 }( v! ]: u5 W6 d2 T6 R  z4 F/ F7 t
1 T+ n( I# _4 f- m* s+ F% k+ p

$ ^0 R0 g/ i9 x; c6 e8 N. W" f- y. o( `: j2 I5 l
如图所示,窗口的中间部分即配置列表,这里和使用cmake命令直接生成makefile文件一致的,如
6 Y* V0 ?& a. x9 }% F: P
: a( y! u2 U; W* X! ?9 P2 M% K$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/OpenCV, F$ ?' ^$ |; z! x) `; E

5 C% k) _, T0 v1 ~! q% P5 e只是这里通过图形界面的方式来进行配置,更加直观方便。/ y4 k8 n  t- u

* }6 K; O$ N$ I( s- k: U这里指对一个地方进行修改,CMAKE_BUILD_TYPE 值输入RELEASE,其他保持不变,图中蓝色虚线部分显示了默认的安装目录,生成makefile文件最后执行 make install时就会安装到这个目录,这里可以根据个人需求更改。在这里的配置中我勾选了WITH_QT 去掉了WITH_TIFF,其他更多的配置也不清楚,OpenCV中文网站也没找到系统的说明,这里暂时不深究,点击Generate生成配置文件。8 B% S% a- y& t

7 i1 E1 B8 f& X9 g& E5 N进入OpenCV-x86目录可以查看Makefile文件,可以留意文件的生成时间是否和刚才的生成时间一致。+ w1 q& F% Y; I) t* d. \
+ M6 E. {; C1 a7 p3 I
4、接下来在OpenCV-x86 分别执行make和make install即可完成编译安装。
0 B; w3 T, {4 B% m& X$ A
$ A( t1 i( t% v5 b5、安装完成后需要对系统相关环境变量进行配置:% C3 ^( N) J; |0 W6 |- R

' A: I  [! @# N8 X: `8 S: A
  • sudo gedit /etc/ld.so.conf.d/opencv.conf! R# }9 w. e7 B7 o8 u6 B
) l( q2 ?1 @' H1 q$ |

1 R% ~+ O$ X! J2 N将以下内容添加到最后:0 C/ t& k. \' k

% g+ F" ?& H, U$ C! A/usr/local/lib) H" E: ]0 k2 R* O/ V" }
7 T1 N* g1 @& J, X. @( w
接下来配置库:" U1 s! W" h/ o2 E2 a/ ~

4 p4 i# h0 r7 Q1 F. ?$ N' Y* G
  • sudo ldconfig
    " h) }  S# t3 N4 @- b( k8 \
2 u* G; m. |% e8 z, O
1 |" t1 E  L  b7 U
更改环境变量:7 ^$ z% x2 S/ F6 s1 W1 t) D% U
8 ]: L$ X; y2 f8 ?0 _4 s4 Z! O
  • sudo gedit /etc/bash.bashrc& f; U. e8 V+ q: ^) @; D  P) o

# L7 u# r/ v* `1 |+ B8 T* O  U1 }, K. s
在文件后添加:
& z+ i2 j+ R; i8 w
# p! b: z+ a; r) \6 I( f( u
  • PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
  • export PKG_CONFIG_PATH! ^# I* u2 B9 e( a
4 y! E1 d; ~2 }5 t: R3 {

# l( u4 s0 e' E1 N保存退出,在运行下面的例程之前,需要重新开启终端来使配置生效。6 Y' m' H6 F& h' P

3 e" i+ t: E* g; }& y5 g& s) ]# {4 F& y/ t: Q' c
例程测试: K* h3 ~- i; R$ {( w1 r9 \* p
9 k  t+ v3 r2 j6 V6 y% }6 z. B
拷贝步骤2中解压的的/OpenCV-2.4.3/samples/c 将c文件夹拷贝出来,下面运行一下这里面的一个例程,初步体验下OpenCV。拷贝完成后进入这个文件夹:
4 y, ~7 F9 z; S  V$ N5 u
+ a) N5 p# P/ mchmod +x build_all.sh
* }' }' z. I' Y& C+ d' Z1 S
* Z) v& A; n; E6 {; d1 d, j./build_all.sh) O# f) H. F8 C4 Q, q

, a4 x+ z% E" B, M6 @这样就对例程目录下的源文件进行了编译,这里运行一个人脸检测的程序,下面摘录自本文参考资料3。
- \4 x* u. S. _6 [6 Q6 @
/ ^- p- ?' N& F/ o8 \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:
% e4 {3 V) a9 b
2 u: t9 H; L5 B" }) B0 _* V终端中运行:" S- ]6 n. {8 B3 W' Y
5 w" m6 x& q* T- ^1 h2 `
  • ./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg2 P, ]  P+ Y" ]( e7 l

) `) m3 b/ F) E6 B0 @7 `
4 P( x. S$ L/ S: x1 t得到的结果如下图:0 k3 Z3 s: C! Z$ H' v- @
* b! c2 c- p! U" Z/ @
, A; H+ l5 N: T9 G
1 |1 R) a. `1 `

. N7 {# b, Y9 o( }5 d
  m+ p+ h+ h3 s/ I) y到这里基本的就写完了,OpenCV我之前也没有任何基础,这里只是把平台配置起来跑通,后续的工作还有很多,欢迎各位参考。( a! E3 e! F( m+ S2 }* f/ _8 D

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 14:22 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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