2016-06-02 5 views
0

Я строю CRFasRNN, который сам основан на caffe) после обновления openCV до версии 3.1.0 (предыдущий был 2.4, я думаю). Я продолжаю получать ошибки, такие какOpenCV v3.1.0 с CRF-RNN

io.cpp:(.text+0x11f8): undefined reference to `cv::imdecode(cv::_InputArray const&, int)' 

во время компиляции, особенно при усложнении. Это не произошло в предыдущий раз, когда я его установил. Я построил caffe и pycaffe (версия 1.0.0.) Без особых сложностей, но тот, который требует crf-rnn, по-видимому, имеет проблему с opencv 3.1.0. Установка pycaffe для crf-rnn сама по себе не работает. Все пути к библиотекам, похоже, работают нормально, я не уверен, что я делаю неправильно.

Я пытался работать что-то с зависимостями OpenCV, но я продолжаю получать сообщения, как

The following packages have unmet dependencies. 
libopencv-dev : Depends: libopencv-objdetect-dev (= 2.3.1-7) but it is not going to be installed 
       Depends: libopencv-highgui-dev (= 2.3.1-7) but it is not going to be installed 
       Depends: libopencv-calib3d-dev (= 2.3.1-7) but it is not going to be installed 
       Depends: libopencv-features2d-dev (= 2.3.1-7) but it is not going to be installed 
       Depends: libopencv-legacy-dev (= 2.3.1-7) but it is not going to be installed 
       Depends: libopencv-contrib-dev (= 2.3.1-7) but it is not going to be installed 

OpenCV в одиночку работает отлично. Перед этой установкой у меня не было проблем.

Любые предложения?

+0

'imdecode' находится в opencv_imgcodecs в версии 3.0. Кажется, что вы смешиваете версии OpenCV ... это нехорошо: D – Miki

+0

У меня так много, спасибо. В Makefile я явно установил OPENCV_VERSION: = 3 – Alex

+0

Но ваши зависимости находятся на версии 2.3. – Miki

ответ

0

OK Я решил проблему, скопировав код из Makefile в установке Caffe в Makefile для caffe-crfrnn. Под «кодом» я имею в виду биты, связанные с opencv. В дополнение к OPENCV_VERSION: = 3 в Makefile.config Я добавил

USE_OPENCV ?= 1 

ifeq ($(USE_OPENCV), 1) 
     LIBRARIES += opencv_core opencv_highgui opencv_imgproc 

     ifeq ($(OPENCV_VERSION), 3) 
       LIBRARIES += opencv_imgcodecs 
     endif 
endif 

# OpenCV 
ifeq ($(USE_OPENCV), 1) 
     COMMON_FLAGS += -DUSE_OPENCV 
endif 

Это сработало!