Mac OS X/ Linux 下源码安装 opencv
来源:互联网 发布:淘宝上的学历提升 编辑:程序博客网 时间:2024/05/02 12:43
最关键的cmake版本要升级,其次,python路径要找到
Python 2:
-- Interpreter: /usr/local/bin/python2.7 (ver 2.7.9)
-- Libraries: /usr/local/lib/libpython2.7.so (ver 2.7.9)
-- numpy: /usr/local/lib/python2.7/site-packages/numpy-1.11.0-py2.7-linux-x86_64.egg/numpy/core/include (ver 1.11.0)
-- packages path: lib/python2.7/site-packages
Goals
- In this tutorial
- We will learn to setup OpenCV-Python in your Fedora system. Below steps are tested for Fedora 18 (64-bit) and Fedora 19 (32-bit).
Introduction
OpenCV-Python can be installed in Fedora in two ways, 1) Install from pre-built binaries available in fedora repositories, 2) Compile from the source. In this section, we will see both.
Another important thing is the additional libraries required. OpenCV-Python requires only Numpy(in addition to other dependencies, which we will see later). But in this tutorials, we also use Matplotlib for some easy and nice plotting purposes (which I feel much better compared to OpenCV). Matplotlib is optional, but highly recommended. Similarly we will also see IPython, an Interactive Python Terminal, which is also highly recommended.
Installing OpenCV-Python from Pre-built Binaries
Install all packages with following command in terminal as root.
$ yum install numpy opencv*
Open Python IDLE (or IPython) and type following codes in Python terminal.
>>> import cv2>>> print cv2.__version__
If the results are printed out without any errors, congratulations !!! You have installed OpenCV-Python successfully.
It is quite easy. But there is a problem with this. Yum repositories may not contain the latest version of OpenCV always. For example, at the time of writing this tutorial, yum repository contains 2.4.5 while latest OpenCV version is 2.4.6. With respect to Python API, latest version will always contain much better support. Also, there may be chance of problems with camera support, video playback etc depending upon the drivers, ffmpeg, gstreamer packages present etc.
So my personnel preference is next method, i.e. compiling from source. Also at some point of time, if you want to contribute to OpenCV, you will need this.
Installing OpenCV from source
Compiling from source may seem a little complicated at first, but once you succeeded in it, there is nothing complicated.
First we will install some dependencies. Some are compulsory, some are optional. Optional dependencies, you can leave if you don’t want.
Compulsory Dependencies
We need CMake to configure the installation, GCC for compilation, Python-devel and Numpy for creating Python extensions etc.
yum install cmakeyum install python-devel numpyyum install gcc gcc-c++
Next we need GTK support for GUI features, Camera support (libdc1394, libv4l), Media Support (ffmpeg, gstreamer) etc.
yum install gtk2-develyum install libdc1394-develyum install libv4l-develyum install ffmpeg-develyum install gstreamer-plugins-base-devel
Optional Dependencies
Above dependencies are sufficient to install OpenCV in your fedora machine. But depending upon your requirements, you may need some extra dependencies. A list of such optional dependencies are given below. You can either leave it or install it, your call :)
OpenCV comes with supporting files for image formats like PNG, JPEG, JPEG2000, TIFF, WebP etc. But it may be a little old. If you want to get latest libraries, you can install development files for these formats.
yum install libpng-develyum install libjpeg-turbo-develyum install jasper-develyum install openexr-develyum install libtiff-develyum install libwebp-devel
Several OpenCV functions are parallelized with Intel’s Threading Building Blocks (TBB). But if you want to enable it, you need to install TBB first. ( Also while configuring installation with CMake, don’t forget to pass -D WITH_TBB=ON
. More details below.)
yum install tbb-devel
OpenCV uses another library Eigen for optimized mathematical operations. So if you have Eigen installed in your system, you can exploit it. ( Also while configuring installation with CMake, don’t forget to pass -D WITH_EIGEN=ON
. More details below.)
yum install eigen3-devel
If you want to build documentation ( Yes, you can create offline version of OpenCV’s complete official documentation in your system in HTML with full search facility so that you need not access internet always if any question, and it is quite FAST!!! ), you need to install Sphinx (a documentation generation tool) and pdflatex (if you want to create a PDF version of it). ( Also while configuring installation with CMake, don’t forget to pass -D BUILD_DOCS=ON
. More details below.)
yum install python-sphinxyum install texlive
Downloading OpenCV
Next we have to download OpenCV. You can download the latest release of OpenCV from sourceforge site. Then extract the folder.
Or you can download latest source from OpenCV’s github repo. (If you want to contribute to OpenCV, choose this. It always keeps your OpenCV up-to-date). For that, you need to install Git first.
yum install gitgit clone https://github.com/Itseez/opencv.git
It will create a folder OpenCV
in home directory (or the directory you specify). The cloning may take some time depending upon your internet connection.
Now open a terminal window and navigate to the downloaded OpenCV folder. Create a new build
folder and navigate to it.
mkdir buildcd build
Configuring and Installing
Now we have installed all the required dependencies, let’s install OpenCV. Installation has to be configured with CMake. It specifies which modules are to be installed, installation path, which additional libraries to be used, whether documentation and examples to be compiled etc. Below command is normally used for configuration (executed from build
folder).
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
It specifies that build type is “Release Mode” and installation path is /usr/local
. Observe the -D
before each option and ..
at the end. In short, this is the format:
cmake [-D <flag>] [-D <flag>] ..
You can specify as many flags you want, but each flag should be preceded by -D
.
So in this tutorial, we are installing OpenCV with TBB and Eigen support. We also build the documentation, but we exclude Performance tests and building samples. We also disable GPU related modules (since we use OpenCV-Python, we don’t need GPU related modules. It saves us some time).
(All the below commands can be done in a single cmake statement, but it is split here for better understanding.)
Enable TBB and Eigen support:
cmake -D WITH_TBB=ON -D WITH_EIGEN=ON ..
Enable documentation and disable tests and samples
cmake -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF ..
Disable all GPU related modules.
cmake -D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=OFF -D BUILD_opencv_gpucodec=OFF -D BUILD_opencv_gpufeatures2d=OFF -D BUILD_opencv_gpufilters=OFF -D BUILD_opencv_gpuimgproc=OFF -D BUILD_opencv_gpulegacy=OFF -D BUILD_opencv_gpuoptflow=OFF -D BUILD_opencv_gpustereo=OFF -D BUILD_opencv_gpuwarping=OFF ..
Set installation path and build type
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
Each time you enter cmake statement, it prints out the resulting configuration setup. In the final setup you got, make sure that following fields are filled (below is the some important parts of configuration I got). These fields should be filled appropriately in your system also. Otherwise some problem has happened. So check if you have correctly performed above steps.
-- GUI:-- GTK+ 2.x: YES (ver 2.24.19)-- GThread : YES (ver 2.36.3)-- Video I/O:-- DC1394 2.x: YES (ver 2.2.0)-- FFMPEG: YES-- codec: YES (ver 54.92.100)-- format: YES (ver 54.63.104)-- util: YES (ver 52.18.100)-- swscale: YES (ver 2.2.100)-- gentoo-style: YES-- GStreamer:-- base: YES (ver 0.10.36)-- video: YES (ver 0.10.36)-- app: YES (ver 0.10.36)-- riff: YES (ver 0.10.36)-- pbutils: YES (ver 0.10.36)-- V4L/V4L2: Using libv4l (ver 1.0.0)-- Other third-party libraries:-- Use Eigen: YES (ver 3.1.4)-- Use TBB: YES (ver 4.0 interface 6004)-- Python:-- Interpreter: /usr/bin/python2 (ver 2.7.5)-- Libraries: /lib/libpython2.7.so (ver 2.7.5)-- numpy: /usr/lib/python2.7/site-packages/numpy/core/include (ver 1.7.1)-- packages path: lib/python2.7/site-packages-- Documentation:-- Build Documentation: YES-- Sphinx: /usr/bin/sphinx-build (ver 1.1.3)-- PdfLaTeX compiler: /usr/bin/pdflatex---- Tests and samples:-- Tests: NO-- Performance tests: NO-- C/C++ Examples: NO
Many other flags and settings are there. It is left for you for further exploration.
Now you build the files using make
command and install it using make install
command. make install
should be executed as root.
makesumake install
Installation is over. All files are installed in /usr/local/
folder. But to use it, your Python should be able to find OpenCV module. You have two options for that.
Move the module to any folder in Python Path : Python path can be found out by entering import sys;print sys.path
in Python terminal. It will print out many locations. Move /usr/local/lib/python2.7/site-packages/cv2.so
to any of this folder. For example,
su mv /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/site-packages
But you will have to do this every time you install OpenCV.
Add ``/usr/local/lib/python2.7/site-packages`` to the PYTHON_PATH: It is to be done only once. Just open ~/.bashrc
and add following line to it, then log out and come back.
export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
Thus OpenCV installation is finished. Open a terminal and try import cv2
.
To build the documentation, just enter following commands:
make docsmake html_docs
Then open opencv/build/doc/_html/index.html
and bookmark it in the browser.
Additional Resources
Exercises
- Compile OpenCV from source in your Fedora machine.
最关键的cmake版本要升级,其次,python路径要找到
Python 2:
-- Interpreter: /usr/local/bin/python2.7 (ver 2.7.9)
-- Libraries: /usr/local/lib/libpython2.7.so (ver 2.7.9)
-- numpy: /usr/local/lib/python2.7/site-packages/numpy-1.11.0-py2.7-linux-x86_64.egg/numpy/core/include (ver 1.11.0)
-- packages path: lib/python2.7/site-packages
Goals
- In this tutorial
- We will learn to setup OpenCV-Python in your Fedora system. Below steps are tested for Fedora 18 (64-bit) and Fedora 19 (32-bit).
Introduction
OpenCV-Python can be installed in Fedora in two ways, 1) Install from pre-built binaries available in fedora repositories, 2) Compile from the source. In this section, we will see both.
Another important thing is the additional libraries required. OpenCV-Python requires only Numpy(in addition to other dependencies, which we will see later). But in this tutorials, we also use Matplotlib for some easy and nice plotting purposes (which I feel much better compared to OpenCV). Matplotlib is optional, but highly recommended. Similarly we will also see IPython, an Interactive Python Terminal, which is also highly recommended.
Installing OpenCV-Python from Pre-built Binaries
Install all packages with following command in terminal as root.
$ yum install numpy opencv*
Open Python IDLE (or IPython) and type following codes in Python terminal.
>>> import cv2>>> print cv2.__version__
If the results are printed out without any errors, congratulations !!! You have installed OpenCV-Python successfully.
It is quite easy. But there is a problem with this. Yum repositories may not contain the latest version of OpenCV always. For example, at the time of writing this tutorial, yum repository contains 2.4.5 while latest OpenCV version is 2.4.6. With respect to Python API, latest version will always contain much better support. Also, there may be chance of problems with camera support, video playback etc depending upon the drivers, ffmpeg, gstreamer packages present etc.
So my personnel preference is next method, i.e. compiling from source. Also at some point of time, if you want to contribute to OpenCV, you will need this.
Installing OpenCV from source
Compiling from source may seem a little complicated at first, but once you succeeded in it, there is nothing complicated.
First we will install some dependencies. Some are compulsory, some are optional. Optional dependencies, you can leave if you don’t want.
Compulsory Dependencies
We need CMake to configure the installation, GCC for compilation, Python-devel and Numpy for creating Python extensions etc.
yum install cmakeyum install python-devel numpyyum install gcc gcc-c++
Next we need GTK support for GUI features, Camera support (libdc1394, libv4l), Media Support (ffmpeg, gstreamer) etc.
yum install gtk2-develyum install libdc1394-develyum install libv4l-develyum install ffmpeg-develyum install gstreamer-plugins-base-devel
Optional Dependencies
Above dependencies are sufficient to install OpenCV in your fedora machine. But depending upon your requirements, you may need some extra dependencies. A list of such optional dependencies are given below. You can either leave it or install it, your call :)
OpenCV comes with supporting files for image formats like PNG, JPEG, JPEG2000, TIFF, WebP etc. But it may be a little old. If you want to get latest libraries, you can install development files for these formats.
yum install libpng-develyum install libjpeg-turbo-develyum install jasper-develyum install openexr-develyum install libtiff-develyum install libwebp-devel
Several OpenCV functions are parallelized with Intel’s Threading Building Blocks (TBB). But if you want to enable it, you need to install TBB first. ( Also while configuring installation with CMake, don’t forget to pass -D WITH_TBB=ON
. More details below.)
yum install tbb-devel
OpenCV uses another library Eigen for optimized mathematical operations. So if you have Eigen installed in your system, you can exploit it. ( Also while configuring installation with CMake, don’t forget to pass -D WITH_EIGEN=ON
. More details below.)
yum install eigen3-devel
If you want to build documentation ( Yes, you can create offline version of OpenCV’s complete official documentation in your system in HTML with full search facility so that you need not access internet always if any question, and it is quite FAST!!! ), you need to install Sphinx (a documentation generation tool) and pdflatex (if you want to create a PDF version of it). ( Also while configuring installation with CMake, don’t forget to pass -D BUILD_DOCS=ON
. More details below.)
yum install python-sphinxyum install texlive
Downloading OpenCV
Next we have to download OpenCV. You can download the latest release of OpenCV from sourceforge site. Then extract the folder.
Or you can download latest source from OpenCV’s github repo. (If you want to contribute to OpenCV, choose this. It always keeps your OpenCV up-to-date). For that, you need to install Git first.
yum install gitgit clone https://github.com/Itseez/opencv.git
It will create a folder OpenCV
in home directory (or the directory you specify). The cloning may take some time depending upon your internet connection.
Now open a terminal window and navigate to the downloaded OpenCV folder. Create a new build
folder and navigate to it.
mkdir buildcd build
Configuring and Installing
Now we have installed all the required dependencies, let’s install OpenCV. Installation has to be configured with CMake. It specifies which modules are to be installed, installation path, which additional libraries to be used, whether documentation and examples to be compiled etc. Below command is normally used for configuration (executed from build
folder).
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
It specifies that build type is “Release Mode” and installation path is /usr/local
. Observe the -D
before each option and ..
at the end. In short, this is the format:
cmake [-D <flag>] [-D <flag>] ..
You can specify as many flags you want, but each flag should be preceded by -D
.
So in this tutorial, we are installing OpenCV with TBB and Eigen support. We also build the documentation, but we exclude Performance tests and building samples. We also disable GPU related modules (since we use OpenCV-Python, we don’t need GPU related modules. It saves us some time).
(All the below commands can be done in a single cmake statement, but it is split here for better understanding.)
Enable TBB and Eigen support:
cmake -D WITH_TBB=ON -D WITH_EIGEN=ON ..
Enable documentation and disable tests and samples
cmake -D BUILD_DOCS=ON -D BUILD_TESTS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_EXAMPLES=OFF ..
Disable all GPU related modules.
cmake -D WITH_OPENCL=OFF -D WITH_CUDA=OFF -D BUILD_opencv_gpu=OFF -D BUILD_opencv_gpuarithm=OFF -D BUILD_opencv_gpubgsegm=OFF -D BUILD_opencv_gpucodec=OFF -D BUILD_opencv_gpufeatures2d=OFF -D BUILD_opencv_gpufilters=OFF -D BUILD_opencv_gpuimgproc=OFF -D BUILD_opencv_gpulegacy=OFF -D BUILD_opencv_gpuoptflow=OFF -D BUILD_opencv_gpustereo=OFF -D BUILD_opencv_gpuwarping=OFF ..
Set installation path and build type
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
Each time you enter cmake statement, it prints out the resulting configuration setup. In the final setup you got, make sure that following fields are filled (below is the some important parts of configuration I got). These fields should be filled appropriately in your system also. Otherwise some problem has happened. So check if you have correctly performed above steps.
-- GUI:-- GTK+ 2.x: YES (ver 2.24.19)-- GThread : YES (ver 2.36.3)-- Video I/O:-- DC1394 2.x: YES (ver 2.2.0)-- FFMPEG: YES-- codec: YES (ver 54.92.100)-- format: YES (ver 54.63.104)-- util: YES (ver 52.18.100)-- swscale: YES (ver 2.2.100)-- gentoo-style: YES-- GStreamer:-- base: YES (ver 0.10.36)-- video: YES (ver 0.10.36)-- app: YES (ver 0.10.36)-- riff: YES (ver 0.10.36)-- pbutils: YES (ver 0.10.36)-- V4L/V4L2: Using libv4l (ver 1.0.0)-- Other third-party libraries:-- Use Eigen: YES (ver 3.1.4)-- Use TBB: YES (ver 4.0 interface 6004)-- Python:-- Interpreter: /usr/bin/python2 (ver 2.7.5)-- Libraries: /lib/libpython2.7.so (ver 2.7.5)-- numpy: /usr/lib/python2.7/site-packages/numpy/core/include (ver 1.7.1)-- packages path: lib/python2.7/site-packages-- Documentation:-- Build Documentation: YES-- Sphinx: /usr/bin/sphinx-build (ver 1.1.3)-- PdfLaTeX compiler: /usr/bin/pdflatex---- Tests and samples:-- Tests: NO-- Performance tests: NO-- C/C++ Examples: NO
Many other flags and settings are there. It is left for you for further exploration.
Now you build the files using make
command and install it using make install
command. make install
should be executed as root.
makesumake install
Installation is over. All files are installed in /usr/local/
folder. But to use it, your Python should be able to find OpenCV module. You have two options for that.
Move the module to any folder in Python Path : Python path can be found out by entering
import sys;print sys.path
in Python terminal. It will print out many locations. Move/usr/local/lib/python2.7/site-packages/cv2.so
to any of this folder. For example,su mv /usr/local/lib/python2.7/site-packages/cv2.so /usr/lib/python2.7/site-packages
But you will have to do this every time you install OpenCV.
Add ``/usr/local/lib/python2.7/site-packages`` to the PYTHON_PATH: It is to be done only once. Just open
~/.bashrc
and add following line to it, then log out and come back.export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/site-packages
Thus OpenCV installation is finished. Open a terminal and try import cv2
.
To build the documentation, just enter following commands:
make docsmake html_docs
Then open opencv/build/doc/_html/index.html
and bookmark it in the browser.
Additional Resources
Exercises
- Compile OpenCV from source in your Fedora machine.
>>> import cv2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dlopen(/Library/Python/2.7/site-packages/cv2.so, 2): Library not loaded: lib/libopencv_shape.3.1.dylib
Referenced from: /Library/Python/2.7/site-packages/cv2.so
Reason: unsafe use of relative rpath lib/libopencv_shape.3.1.dylib in /Library/Python/2.7/site-packages/cv2.so with restricted binary
york@heyong-wifi ~$cat 1.py
from os import system
lib_list = ['libopencv_reg.3.1.dylib','libopencv_surface_matching.3.1.dylib','libopencv_dnn.3.1.dylib','libopencv_superres.3.1.dylib','libopencv_xobjdetect.3.1.dylib','libopencv_xphoto.3.1.dylib','libopencv_bgsegm.3.1.dylib','libopencv_bioinspired.3.1.dylib','libopencv_dpm.3.1.dylib','libopencv_line_descriptor.3.1.dylib','libopencv_saliency.3.1.dylib','libopencv_ccalib.3.1.dylib','libopencv_rgbd.3.1.dylib','libopencv_tracking.3.1.dylib','libopencv_videostab.3.1.dylib','libopencv_aruco.3.1.dylib','libopencv_optflow.3.1.dylib','libopencv_stitching.3.1.dylib','libopencv_datasets.3.1.dylib','libopencv_face.3.1.dylib','libopencv_text.3.1.dylib','libopencv_photo.3.1.dylib','libopencv_ximgproc.3.1.dylib','libopencv_objdetect.3.1.dylib','libopencv_xfeatures2d.3.1.dylib','libopencv_shape.3.1.dylib','libopencv_video.3.1.dylib','libopencv_calib3d.3.1.dylib','libopencv_features2d.3.1.dylib','libopencv_flann.3.1.dylib','libopencv_ml.3.1.dylib','libopencv_highgui.3.1.dylib','libopencv_videoio.3.1.dylib','libopencv_imgcodecs.3.1.dylib','libopencv_imgproc.3.1.dylib','libopencv_core.3.1.dylib']
libs_list = ['/Library/Python/2.7/site-packages/cv2.so','/usr/local/lib/libopencv_reg.3.1.dylib','/usr/local/lib/libopencv_surface_matching.3.1.dylib','/usr/local/lib/libopencv_dnn.3.1.dylib','/usr/local/lib/libopencv_superres.3.1.dylib','/usr/local/lib/libopencv_xobjdetect.3.1.dylib','/usr/local/lib/libopencv_xphoto.3.1.dylib','/usr/local/lib/libopencv_bgsegm.3.1.dylib','/usr/local/lib/libopencv_bioinspired.3.1.dylib','/usr/local/lib/libopencv_dpm.3.1.dylib','/usr/local/lib/libopencv_line_descriptor.3.1.dylib','/usr/local/lib/libopencv_saliency.3.1.dylib','/usr/local/lib/libopencv_ccalib.3.1.dylib','/usr/local/lib/libopencv_rgbd.3.1.dylib','/usr/local/lib/libopencv_tracking.3.1.dylib','/usr/local/lib/libopencv_videostab.3.1.dylib','/usr/local/lib/libopencv_aruco.3.1.dylib','/usr/local/lib/libopencv_optflow.3.1.dylib','/usr/local/lib/libopencv_stitching.3.1.dylib','/usr/local/lib/libopencv_datasets.3.1.dylib','/usr/local/lib/libopencv_face.3.1.dylib','/usr/local/lib/libopencv_text.3.1.dylib','/usr/local/lib/libopencv_photo.3.1.dylib','/usr/local/lib/libopencv_ximgproc.3.1.dylib','/usr/local/lib/libopencv_objdetect.3.1.dylib','/usr/local/lib/libopencv_xfeatures2d.3.1.dylib','/usr/local/lib/libopencv_shape.3.1.dylib','/usr/local/lib/libopencv_video.3.1.dylib','/usr/local/lib/libopencv_calib3d.3.1.dylib','/usr/local/lib/libopencv_features2d.3.1.dylib','/usr/local/lib/libopencv_flann.3.1.dylib','/usr/local/lib/libopencv_ml.3.1.dylib','/usr/local/lib/libopencv_highgui.3.1.dylib','/usr/local/lib/libopencv_videoio.3.1.dylib','/usr/local/lib/libopencv_imgcodecs.3.1.dylib','/usr/local/lib/libopencv_imgproc.3.1.dylib','/usr/local/lib/libopencv_core.3.1.dylib']
cmd = 'install_name_tool -change '
path = '/usr/local/lib/'
for item in lib_list:
for lib in libs_list:
system(cmd + 'lib/' + item + ' ' + path + item + ' ' + lib)
- Mac OS X/ Linux 下源码安装 opencv
- Mac OS X下安装配置Android源码开发环境
- MAC OS下载源码编译安装OpenCV
- Mac OS X下编译Android源码
- Mac OS X 下编译android源码
- Mac OS X下编译Android源码
- Mac OS X 10.7下安装wxWidgets
- Mac OS X 下安装Subclipse
- mac os x下安装xdebug
- Win7下虚拟机安装Mac OS X
- mac os x下安装python libsvm
- Mac os x下编译安装Qt
- VMWare 下完美安装 Mac OS X
- VitualBox下安装Mac OS X
- VirtualBox下安装Mac OS X系统
- mac os x 10.9 下安装pomelo
- 在Mac OS X下安装toLua++
- Mac OS X 下安装使用 Docker
- 【会议】QCon2016会议整理(三)——开源及微服务
- WEB开发的相关知识
- C++、python 写类似全排列算法
- Linux CPU调度相关
- java常用的日期方法
- Mac OS X/ Linux 下源码安装 opencv
- 方块填数
- 谈互联网思维
- ios开发学习笔记--调用相册或相机(UIImagePickerController)
- Longest Increasing Path in a Matrix (DFS+记忆化搜索)
- 【bzoj 1119】 [POI2009] SLO(置换群)
- Spring_Spring_教程13_利用XML实现Aop方式
- js 案例
- 函数返回局部变量问题