4月開発作業用環境整備履歴

opencv3をインストール

この記事に従ってインストール

Ubuntu16.04 LTSにOpenCV3.1をインストール から顔認識のテストまで - 粗大メモ置き場

gst_app_sink_pull_sample not declaredと出たので

c++ - failure in compiling opencv with cap_gstreamer error - Stack Overflow

set WITH_GSTREAMER_0_10 to ONをやった

 

目的のプロジェクトのビルドで、CV_SQRが定義されてないと出る。githubopencv_contribのところにcv_sqrが定義されているので、opencv_contribをインストールするとよいのかもしれない。

OpenCV3.0とopencv_contribをubuntuに入れた作業メモ - Qiita

cmakeでエラーになる

OpenCV: Build opencv_contrib with dnn module

これに従って一からインストールし直し

最後にmake install、ldconfigなどする。正しくopencvがインストールされている模様。/usr/local/include/opencvgithub.com/opencv(opencv3.2.0)のmake installをすると更新されるので、/usr/local/includeはopencvのバージョン3に対応するものだと思われる。opencv/cv.hの中で、

#include "opencv2/core/core_c.h"

#include "opencv2/imgproc/imgproc_c.h"

などとされている。でも、GaussianBlurが宣言されているのはopencv2/imgproc.hppの中。おそらくopencvの使い方として、opencv2やopencv3は、opencv2/imgproc.hppをincludeして使うかたちと思われる。一方、ターゲットのプロジェクトでは#include <opencv2/*>をしておらず、#include "opencv/cv.h"や#include <opencv/cv.h>をしている。

→ターゲットのopencvのバージョンはopencv1系あるいはopencv2系かもしれない。

OpenCVとは? 最新3.0の新機能概要とモジュール構成 - Build Insider

contribモジュールはopencv3.0以降はopencv_contribになっている。これもopencv2系である可能性示している。

OpenCV2.1からOpenCV2.2の変更点(ChangeLog) | OpenCV.jp

これによるとopencv2.1から2.2への変更点として、推奨されるインクルードの書き方が、<cv.h>から<opencv2/imgproc/imgproc.hpp>に変更になっている。

 

OpenCVをLinuxにインストール - AkiWiki

これをみてopencv 1.1preをインストールsourceforgeからソースをとってきてmake。

#38168 (Conflicting declarations in tiff and opencv) – MacPorts

このエラーがでたので、cxtypes.hの当該箇所をtypedef long int64;に変更した

 

、、とやっている途中で、opencvはapt-get install ros-kinetic-opencv*とすればよいと聞いたのでいったん後回し。apt-getしたあとの/usr/local/includeが更新されていないような気がする。

----

これを見てQtの5.5を~/archiveの下にインストールした

LinuxでQtアプリを作る - Yahoo!知恵袋

----

インストールされているvtkのバージョンは6.2.0

http://www.pcl-users.org/PCL-1-7-Compilation-Problems-td4028868.html

 

-----

ターゲットの都合、/usr/include/cv_bridgeと/opt/ros/kinetic/include/cv_bridgeを別名にmv

----

ターゲットの都合/usr/include/boostを別名にmv ...だとだめだったのでもとに戻した 

----

ターゲットの都合/usr/lib/x86_64-linux-gnu/qt4を別名にmv→やっぱり元に戻した

 

★最後にもう一度クリーンなところからcatkin_makeをするべき。/usr/以下のファイルをmvしたりしているので

 -------

opencvを全部uninstallしてrosのopencvのみを使うようにする。現状どういったものがインストールされているかというと

/usr/local/lib/にlibopencv_*2.4.13とlibopencv_*3.2が入っている

/usr/local/include/にopencv/とopencv2/が入っている

/usr/lib/x86_64-linux-gnu/にlibopencv_*2.4が入っている

/usr/includeにopencv/とopencv2/が入っている

/opt/opencv-2.4.13がある

 

まずはmake uninstall。

/opt/opencv-2.4.13/build $ sudo make uninstall

~/archive/opencv_root201704020701/build_opencv $ sudo make uninstall

次にapt-get --purge remove。

sudo apt-get --purge remove opencv

$ sudo apt-get --purge remove libopencv* python-opencv

$ sudo rm /usr/local/lib/python2.7/site-packages/cv2.so

 

インストールされているパッケージを調べるには

$ dpkg --get-selections

libopencv-calib3d2.4v5

libopencv-contrib2.4v5

など、2.4v5が含まれるパッケージもアンインストール

 

全て消して入れ直してみるので

$ sudo apt-get --purge remove ros-kinetic-opencv3 ros-kinetic-vision-opencv

$ sudo apt-get install ros-kinetic-desktop-full

 

これでもだめ。