SSブログ

QRコードを正しく読み込むためにopencv4nodejsを入れてみる [PC関係]

最近nodejsでシステム開発しているのだが、QRコードのスキャンをZBarでやっている。
しかし、現場で撮影した写真からQRコードをスキャンすると結構認識率が悪い。

ボケているのやら、斜めになっているのやらがあるせいだと思うのだが...

そこで、OpenCVで画像処理したらうまくいくのでは?と思いopencv4nodejsを入れてみることにした。
とりあえずは、QRコードの部分を切り出して、グレースケールに変換ができればOKかな。顔検出とかもできるかも。

ということで、さっそくnpmでインストール。

npm install --save opencv4nodejs


あーん、即エラー。先は長そう。
エラーをよく見ると「cmakeが無い」だけのよう。

sudo yum install cmake


でサクッとインストール。

再度、npm installすると

npm install --save opencv4nodejs


コンパイルしているが、警告が山のように出ている。大丈夫かこれ...

しばらくすると、案の定、致命的エラーでビルドできず。あーんもう。
調べると、gccのバージョンが古いとダメっぽい。CentOS7ってもう古いよね(Macでやればよかったか)。

sudo yum install centos-release-scl
sudo yum install devtoolset-7-gcc*
scl enable devtoolset-7 bash



てな感じでgccをバージョンアップ。
一度、npm uninstall opencv4nodejsで削除してから、もう一度トライ。

今度は、警告は出ないみたい。

[ 51%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/glob.cpp.o
[ 51%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/hal_internal.cpp.o
[ 51%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/kmeans.cpp.o
[ 51%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/lapack.cpp.o
Linking CXX static library ../lib/liblibprotobuf.a
[ 51%] Built target libprotobuf
[ 51%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/lda.cpp.o
[ 51%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/logger.cpp.o
[ 51%] Building CXX object modules/core/CMakeFiles/opencv_core.dir/src/lpsolver.cpp.o


よしよし、順調に進んでいる。

とおもいきや、おしくも最後の方(と思われる)でエラー。


ERR! In file included from /home/asai/crevia/node_modules/opencv-build/opencv/build/include/opencv2/ml.hpp:1967:0,
                 from ../cc/machinelearning/machinelearning.h:3,
                 from ../cc/opencv4nodejs.cc:25:
/home/asai/crevia/node_modules/opencv-build/opencv/build/include/opencv2/ml/ml.inl.hpp: In function ‘int cv::ml::simulatedAnnealingSolver(SimulatedAnnealingSolverSystem&, double, double, double, size_t, double*, cv::RNG&)’:
/home/asai/crevia/node_modules/opencv-build/opencv/build/include/opencv2/ml/ml.inl.hpp:55:0: note: -Wmisleading-indentation is disabled from this point onwards, since column-tracking was disabled due to the size of the code/headers
     return exchange;


もう、何言ってるのかよくわからん。
エラーの内容が出てないじゃん。

どうも、-Wmisleading-indentationが無効になってるよ。ということらしいのだが...

ミスリードインデンテーションって何?と思って、ソースコードを開いてみる。

53:    if (lastTemperature)
54:        *lastTemperature = Ti;
55:    return exchange;              // ここでエラーが発生している
56:}


ああ、そういうことか。インデントの付け方が、ミスリード(誤解を招く)ということなのね。
if文の後がブロックになっておらず、1ステートメントだけなので、55行目のインデントとしては正しいと思うのだが...
コンパイラのバグか?
まぁ、いいや。以下のように修正してみた。

53:    if (lastTemperature) {
54:        *lastTemperature = Ti;
55:    }
56:    return exchange;
57:}


これなら文句ないでしょう。
同じようなエラーがもう一つ出たので同じように修正して、再度ビルド。

  CXX(target) Release/obj.target/opencv4nodejs/cc/features2d/detectors/SimpleBlobDetectorParams.o
  CXX(target) Release/obj.target/opencv4nodejs/cc/xfeatures2d/xfeatures2d.o
  CXX(target) Release/obj.target/opencv4nodejs/cc/xfeatures2d/SIFTDetector.o
  CXX(target) Release/obj.target/opencv4nodejs/cc/xfeatures2d/SURFDetector.o
  SOLINK_MODULE(target) Release/obj.target/opencv4nodejs.node
  COPY Release/opencv4nodejs.node
make: ディレクトリ '/home/asai/crevia/node_modules/opencv4nodejs/build' から出ます
+ opencv4nodejs@5.6.0
updated 1 package and audited 580 packages in 366.42s

18 packages are looking for funding
  run `npm fund` for details

found 0 vulnerabilities


やった!
できたっぽい。

使い方についてはまた今度。




サイト内を検索

nice!(0)  コメント(0) 
共通テーマ:携帯コンテンツ

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。



Copyright Atsushi Asai Google+朝井淳
[改訂第4版]SQLポケットリファレンス

[改訂第4版]SQLポケットリファレンス

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2017/02/18
  • メディア: 単行本(ソフトカバー)

イラストで理解 SQL はじめて入門

イラストで理解 SQL はじめて入門

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2019/05/16
  • メディア: 単行本(ソフトカバー)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

[データベースの気持ちがわかる]SQLはじめの一歩 (WEB+DB PRESS plus)

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2015/03/03
  • メディア: 単行本(ソフトカバー)

Access クエリ 徹底活用ガイド ~仕事の現場で即使える

Access クエリ 徹底活用ガイド ~仕事の現場で即使える

  • 作者: 朝井 淳
  • 出版社/メーカー: 技術評論社
  • 発売日: 2018/05/25
  • メディア: 大型本

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。