LoginSignup
0
0

More than 1 year has passed since last update.

[caffe / OpenCV4.x] error: 'CV_LOAD_IMAGE_***' was not declared in this scope への対応

Posted at

概要

OpenCV version3系から4系へアップデートしてcaffeを動かそうとしたら、タイトルに記載のエラーが発生したが、なんとか対処できたので、その方法を記載する。

Dependencies

version
Ubuntu 20.04
Python 3.8
caffe 1.0
OpenCV 4.5.5

発生したエラー

たとえばこんな感じのエラーが発生した。

.../caffe/util/io.cpp:77:5: error: 'CV_LOAD_IMAGE_GRAYSCALE' was not declared in this scope
   77 |     CV_LOAD_IMAGE_GRAYSCALE);
      |     ^~~~~~~~~~~~~~~~~~~~~~~
.../caffe/util/io.cpp: In function 'cv::Mat caffe::DecodeDatumToCVMat(const caffe::Datum&, bool)':
.../caffe/util/io.cpp:183:5: error: 'CV_LOAD_IMAGE_GRAYSCALE' was not declared in this scope
  183 |     CV_LOAD_IMAGE_GRAYSCALE);
      |     ^~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/build.make:1350: src/caffe/CMakeFiles/caffe.dir/util/io.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:382: src/caffe/CMakeFiles/caffe.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

重要なポイントは以下のポイント。

error: 'CV_LOAD_IMAGE_GRAYSCALE' was not declared in this scope
error: ‘CV_LOAD_IMAGE_COLOR’ was not declared in this scope
         cv_img = cv::imread(image.first, CV_LOAD_IMAGE_COLOR);

caffeのcmakeやmake実行時にこのようなエラーが出ている場合、以下の対処法で解決する。

対処法

  • CV_LOAD_IMAGE_COLOR
    cppソースコード上のCV_LOAD_IMAGE_COLORと書かれている箇所全てをcv::IMREAD_COLORに置換。
  • CV_LOAD_IMAGE_GRAYSCALE
    cppソースコード上のCV_LOAD_IMAGE_GRAYSCALEと書かれている箇所全てをcv::IMREAD_GRAYSCALEに置換。

参考にした記事

以下のissueコメントに同内容が記載されている。

なかなか発見に時間がかかったので、この内容を日本語で記載したのが本記事。

原因について(の推測)

おそらく、CV_LOAD_IMAGE_GRAYSCALECV_LOAD_IMAGE_COLORは古い書き方で、OpenCVのアップデートの中で、途中からcv::IMREAD_COLORcv::IMREAD_GRAYSCALEに書き換えられたのだろう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0