|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 thinkfunny 于 2021-4-14 09:03 编辑
- A0 ^- f% f$ b( A8 z* E
& i# j* c7 ^3 [; t7 ~1 {2 q- 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)
; ~% V8 l( f r# j/ {
4 ^+ k! N3 T) Q# N/ Z
& O7 k5 [# x( R/ f2 N$ ]0 O4 ?Cmake的安装0 w% j& b5 B, l7 b( H. R* Y0 c
OpenCV 2.2以后版本需要使用Cmake生成makefile文件,因此需要先安装cmake。4 `' T! H6 ]2 G$ j" M5 N
" i' T9 ?2 V2 U+ N; W- yubuntu下安装cmake比较简单,
# G! G# u/ S7 Q, ?; B H6 C3 H5 q
" u8 r" d0 q' o: x" E/ mapt-get install cmake' ~. F" n( G$ G
" J/ i, d: M1 j. z5 ~如果觉得自带的版本不符合要求,可以下载安装包。' ^0 J7 D" J0 L+ M0 R; l8 ^
z% a& h& ^/ m9 F下载最新版的安装包:
0 Q# `# I, v! @4 o1 p! H8 B1 F" _" `: a) z5 r5 G
http:/ /www.cmake.org/cmake/resources/software.html2 v( G. j) r7 a |" P" j4 l S
6 o8 E& m5 D5 E
这里下载已经编译好的,这样只需要解压至需要的目录下即可使用:" h: J+ Z: j! F9 g% ?4 I
- Q D h s$ v. m, l; Wtar zxvf cmake-2.8.10.2-Linux-i386.tar.gz –C /usr/local/
4 Q8 ~3 b/ |. [0 t2 Q( x& ?" y- q% B+ x
设置环境变量:
$ A" x6 s7 ~) u$ Q
2 n) l# W% |8 T7 q, ^3 |0 i, Fsudo gedit /home/emouse/.bashrc3 |8 S0 l8 C& G, @2 n- s
6 U+ n( |! B+ G' F
在打开的文件后添加:
8 b( a+ t% n6 @2 u9 b6 \# w& ?
* |2 o' N6 C) k8 ^0 x# y9 H/ Uexport PATH=$PATH:/usr/local/cmake-2.8.10.2-Linux-i386/bin Q. I0 I: y' x5 ~& j* ?: a7 @7 [
( Y/ T! ~ _3 Y查看版本,测试是否安装成功:
' k6 ^, F% ~& s5 g. f0 h+ V% y/ a: e1 h# Q$ I- y8 N0 A6 Y2 @( l
root@emouse:/home# cmake --version
9 \' X0 M' C* s; D6 b: Q% Ecmake version 2.8.10.2
1 Y6 M u( A/ O
; y; ]) N Y$ C
2 K$ C a+ d# h/ m( B0 d' ?0 J& Q/ W2 d; s! }% \( y( p b
Ubuntu 下安装 OpenCV0 D# v) O2 S' o2 g- g" n$ U
4 @# w4 d- C" n& L. a
软件环境:6 Z; g5 v9 R' _
$ n6 S' V; R- `2 Q, ?) B! C
Ubuntu 12.04
- U6 Z8 s" V( z
2 p) P2 _. J+ t" ~/ S( fOpenCV 2.4.3
& |4 F: E0 Y+ C
& [( A" _% A9 z1 f( kCmake 2.8.10.1
$ R6 V% Q6 V: w4 ^# }- K& t* m7 d& T& ~6 z; Y: }. y/ Z8 n! V
gcc 4.6.3 (系统默认)
. B }/ t$ H+ C& P7 q' x) N( u4 E- }9 n1 w/ H8 |
% P; `8 ^5 y0 Y/ C6 S/ w6 o
5 G5 V9 D6 O v
1、先安装 libgtk2.0-dev 和 pkg-config,,否则后期编译运行程序会出现类似如下的问题:
& C" v; ]5 X1 c# U+ T g8 ]# X9 F: C# z% l l
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 0 C/ |. f& l. A3 m6 | n
terminate called after throwing an instance of 'cv::Exception'# R0 e$ A( U+ \+ o/ z6 U( p
; t5 P6 B6 e; G
通过网络获取安装:7 z- K2 a& l. P
4 z1 l; _, X7 t/ v, a8 j7 }
- # apt-get install libgtk2.0-dev
- # apt-get install pkg-config
+ ^* P6 ^/ v; g2 m6 g - O x% k" V+ g
# n: ]7 [( E3 X; a8 R* E
/ l# Y3 s: o0 G/ a1 q2、下载OpenCV ,文件名:OpenCV-2.4.3.tar.bz2,下载地址:
v+ D h1 F, T0 R2 j+ O6 W" b2 w9 A4 w% [6 Y& q4 y
http:/ /www.opencv.org.cn/index.php/Download
: l% Z) p7 ~! h5 i! r+ B; N2 Y/ L6 o5 o
解压:! _% [$ c' U2 L/ x
3 v; P$ i* Z( T2 x# \+ a7 H4 F& }
#tar jxvf OpenCV-2.4.3.tar.bz2+ X0 g6 r# V7 E! W* G2 j
" w$ B$ |- ]- r, h p$ m3 ~得到文件夹 OpenCV-2.4.33 f9 ` m, S# M
/ r: U S6 T& i
这里新建一个文件夹OpenCV-x86作为PC编译目录。) C* p, w2 w8 F" I. I, C- @
- \# V7 |2 d& B5 F: e6 D7 K
% u% ?8 `% e$ [; W
+ K5 x. z% U9 o. M# A3、#cmake-gui 打开cmake的gui界面,开始进行配置。
2 r) ~8 x3 M5 X. W% ]$ a9 ]2 z, i' Q% @! W- S' u# x6 c+ F2 Q$ L
cmake主要用于进行一些配置设定,从而生成用于编译安装的makefile文件,通过界面进行参数的配置和设定,非常直观、方便。在配置中指定源码和编译目录以及生成方式。8 _" x/ W: L6 V: t8 ^
" S4 Q3 a! h3 C$ v$ ~; w
按照下图的步骤进行配置:' @1 r% F% G) N; i7 Z5 I
4 T" e/ g9 n3 J. r; D1 q% t
- W* `" ]" r& z: N* G0 X, x
% J v" a8 E; O+ R
+ D: C; y# E( e/ O5 W1 o9 j点击Finish后cmake即载入默认配置,如下图所示:0 h5 s, S( Y: P
4 @- h& t! t% @7 Z. ^
3 }# y7 b/ T. Z! }8 j: t" i
7 b+ t- r B* H0 W5 f
B) t# y, d) x, v4 T9 s4 r
如图所示,窗口的中间部分即配置列表,这里和使用cmake命令直接生成makefile文件一致的,如
1 F* i' Z; {# V1 `% B9 P# L, V* X* E! @) h1 w" L
$ cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/home/OpenCV* L* q9 B" T1 v# c N/ R/ }
) x+ e- i& {4 n) Y
只是这里通过图形界面的方式来进行配置,更加直观方便。
2 b+ R' v4 J, J+ t0 v* P. N4 u/ V4 c% ]# t% D+ t3 j
这里指对一个地方进行修改,CMAKE_BUILD_TYPE 值输入RELEASE,其他保持不变,图中蓝色虚线部分显示了默认的安装目录,生成makefile文件最后执行 make install时就会安装到这个目录,这里可以根据个人需求更改。在这里的配置中我勾选了WITH_QT 去掉了WITH_TIFF,其他更多的配置也不清楚,OpenCV中文网站也没找到系统的说明,这里暂时不深究,点击Generate生成配置文件。+ p" q: A8 k3 v- N
; [: ~# @0 F; a# E- m! d8 i
进入OpenCV-x86目录可以查看Makefile文件,可以留意文件的生成时间是否和刚才的生成时间一致。# Z0 `$ ^5 _6 H
' ^+ R+ W4 E K4、接下来在OpenCV-x86 分别执行make和make install即可完成编译安装。+ k7 q9 G9 s9 T8 K3 w" G0 W
n7 N: ], B0 U+ e6 o
5、安装完成后需要对系统相关环境变量进行配置:6 i" e! X- x- h8 P/ G& u' W* B
3 g: o2 Z3 ?) `& b/ A$ C, W9 P
- sudo gedit /etc/ld.so.conf.d/opencv.conf
1 C! N f9 f/ O3 H) p$ B! c9 Y ' x! O4 J# l/ F$ s+ x6 U" P
% U( N2 h) q0 V& \, J B: f" s
将以下内容添加到最后:$ b) c, z* S, w6 t/ V |
& n ~. W7 O" H* |& L; W
/usr/local/lib" P/ N+ X& i% B' A( `& b
& |+ ]# ^$ n% J& \# {, e& _接下来配置库:
8 `. M7 C( K' p" @$ P1 U0 y9 l: A! j' x$ G" T$ N; w3 H( c; p
- sudo ldconfig
5 X8 g& v* \4 j 1 h2 a2 G m0 z/ B
* `( l% k$ ^& b5 }8 O' a
更改环境变量:
% M/ E/ U7 n& k( c
$ D0 i+ E7 d. ?& I+ i' k- sudo gedit /etc/bash.bashrc
9 H4 v' ^6 c* K" E$ N v- R : ]& ], @, I' I3 E4 [4 b
9 S" q, ~% `6 d
在文件后添加:4 I# `1 f2 q( _0 W/ a1 c4 O
- A0 C3 a5 S4 T- PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
- export PKG_CONFIG_PATH
) T* o# P; g* s' R( l 1 b; {! ?% e2 g: V4 m7 G
: [8 _4 l* k j& R( j0 p! h保存退出,在运行下面的例程之前,需要重新开启终端来使配置生效。
0 i& D5 e* ]4 x: U; b
; e& C9 r/ W1 q6 \* V
2 Q; H, T4 B! ~, R/ k6 }例程测试
& V; e& r- P' L. {; J( q z! `4 Z! V/ S3 t5 Q$ b' n
拷贝步骤2中解压的的/OpenCV-2.4.3/samples/c 将c文件夹拷贝出来,下面运行一下这里面的一个例程,初步体验下OpenCV。拷贝完成后进入这个文件夹:1 m0 A: ?1 o4 `: |% F: T
G. X$ n; J* G2 zchmod +x build_all.sh
" _& ]8 ]" @2 q, E. ]1 p: U
0 a* p! D j2 R./build_all.sh. z5 ^) M3 f8 a* ]/ e
- M' f/ f9 E. h- q7 p
这样就对例程目录下的源文件进行了编译,这里运行一个人脸检测的程序,下面摘录自本文参考资料3。
! g }* _2 F1 [/ |
6 I$ F- n; P1 F$ a4 c; k2 s! cSome 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:
) r t' P6 ` m0 _# V% Q$ Y
]7 @+ g+ W$ t+ }' P& ~1 y! A1 O终端中运行: x% k4 u. E9 d) h
e' A0 L5 s3 a4 |2 a: b# {+ p- ./facedetect --cascade="/usr/local/share/OpenCV/haarcascades/haarcascade_frontalface_alt.xml" --scale=1.5 lena.jpg P! ]" a& |3 |' D
* f* \) D/ o# v! T% g6 H
; \" K8 e# |1 |4 a3 M- s得到的结果如下图:
6 A# O) S/ t2 H- s+ i& Z! u v6 o
2 \! T" d6 Q# m( `. a% e' J7 W' j# [& Q2 d( G2 q
4 ?7 v9 b0 |' W) q2 ?+ O( U9 s
& @1 z6 G" I; L" v/ |( y
到这里基本的就写完了,OpenCV我之前也没有任何基础,这里只是把平台配置起来跑通,后续的工作还有很多,欢迎各位参考。6 U- w2 i9 x4 o6 r# v
|
|