我正在尝试了解 Ubuntu Bionic 上的 OpenCV 版本控制惯例。我对 OpenCV 3+ 感兴趣,如果需要,我可以自己构建它,但我想了解 bionic 存储库中附带的 OpenCV 版本控制方案背后的原理。
例如,我安装了一些 opencv 库:
$ dpkg --list | grep libopencv
ii libopencv-calib3d-dev:amd64 3.2.0+dfsg-4build2 amd64 development files for libopencv-calib3d3.2
ii libopencv-calib3d3.2:amd64 3.2.0+dfsg-4build2 amd64 computer vision Camera Calibration library
ii libopencv-contrib-dev:amd64 3.2.0+dfsg-4build2 amd64 development files for libopencv-contrib3.2
ii libopencv-contrib3.2:amd64 3.2.0+dfsg-4build2 amd64 computer vision contrlib library
ii libopencv-core-dev:amd64 3.2.0+dfsg-4build2 amd64 development files for libopencv-core3.2
ii libopencv-core3.2:amd64 3.2.0+dfsg-4build2 amd64 computer vision core library
ii libopencv-dev 3.2.0+dfsg-4build2 amd64 development files for opencv
ii libopencv-features2d-dev:amd64 3.2.0+dfsg-4build2 amd64 development files for libopencv-features2d3.2
ii libopencv-features2d3.2:amd64 3.2.0+dfsg-4build2 amd64 computer vision Feature Detection and Descriptor Extraction library
ii libopencv-flann-dev:amd64 3.2.0+dfsg-4build2 amd64 development files for libopencv-flann3.2
ii libopencv-flann3.2:amd64 3.2.0+dfsg-4build2 amd64 computer vision Clustering and Search in Multi-Dimensional spaces library
ii libopencv-highgui-dev:amd64 3.2.0+dfsg-4build2 amd64 development files for libopencv-highgui3.2
ii libopencv-highgui3.2:amd64 3.2.0+dfsg-4build2 amd64 computer vision High-level GUI and Media I/O library
ii libopencv-imgcodecs-dev:amd64 3.2.0+dfsg-4build2 amd64 development files for libopencv-imgcodecs3.2
...
这些库的版本都是“3.2”。然而,当我深入研究其中一个包时:
$ dpkg-query -L libopencv-highgui-dev
/.
/usr
/usr/include
/usr/include/opencv2
/usr/include/opencv2/highgui
/usr/include/opencv2/highgui/highgui.hpp
/usr/include/opencv2/highgui/highgui_c.h
/usr/include/opencv2/highgui.hpp
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/libopencv_highgui.a
/usr/share
/usr/share/doc
/usr/share/doc/libopencv-highgui-dev
/usr/share/doc/libopencv-highgui-dev/README.Debian
/usr/share/doc/libopencv-highgui-dev/copyright
/usr/lib/x86_64-linux-gnu/libopencv_highgui.so
/usr/share/doc/libopencv-highgui-dev/changelog.Debian.gz
从包含目录中可以清楚地看出,opencv 版本实际上是“opencv2”。那么这是什么意思呢?“3.2”实际上不是 opencv 的版本,而是 ubuntu 包的版本吗?