質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Q&A

解決済

2回答

1772閲覧

ヘッダファイルの読み込み(precomp.hpp)

deb

総合スコア17

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

GitHub

GitHubは、Gitバージョン管理システムを利用したソフトウェア開発向けの共有ウェブサービスです。GitHub商用プランおよびオープンソースプロジェクト向けの無料アカウントを提供しています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

0グッド

0クリップ

投稿2019/01/31 10:14

前提・実現したいこと

OpenCVで画像処理の勉強をしています。
機械学習のSIFT特徴量を使おうと予定していまして、
GitHubにあるsift.cppのソースコードの原文を読んで回してみようと思っています。
するとヘッダファイルが見つからないとのエラーが出ました。
OpenCVに関するファイルはすべてAnacondaでまとめて入れたのですが、
ヘッダファイルがない場合はどうすればよいのでしょうか。
追加でインストールすることはできますか?
ご教授お願いします。

発生している問題・エラーメッセージ

helloworld.cpp:99:10: fatal error: precomp.hpp: No such file or directory #include "precomp.hpp"

該当のソースコード

これがソースファイルの冒頭です。

cpp

1#include "precomp.hpp" 2#include <iostream> 3#include <stdarg.h> 4#include <opencv2/core/hal/hal.hpp> 5

試したこと

precoomp.hppはGitHub上にコードが落ちていたので、それをコピペしてカレントディレクトリに自作Precomp.hppを作りましたが、自分で作ったものは駄目と言われます。

#error this is a private header which should not be used from outside of the OpenCV library

補足情報(FW/ツールのバージョンなど)

Python 3.5.6
Anaconda 3
OpenCV 3.1.0

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

cmd

1#error this is a private header which should not be used from outside of the OpenCV library

このエラーに関しては、参照したヘッダの中の

cpp

1#ifndef __OPENCV_BUILD 2# error this is a private header which should not be used from outside of the OpenCV library 3#endif

という条件コンパイル文を削除するとエラーも消えました。

投稿2019/02/04 09:49

deb

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

こんにちは。

SIFTはOpenCVのcontrib内にありますので、OpenCVのソース・コード全体をダウンロード、もしくは、クローンすれば存在するのではないかと思います。

初めてのOpenCV開発 ― opencv_contrib紹介【OpenCV 3.1.0】
に解説があるようですので参考にされると良いと思います。

ところで、「ソースコードの原文を読んで回してみようと思っています。」の「回してみる」ってどのような意味でしょう? 初めて聞く表現です。(typoでしたらごめんなさい。)

投稿2019/01/31 12:24

Chironian

総合スコア23272

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

deb

2019/02/01 07:55

回答ありがとうございます。 precomp.hppというヘッダファイルは確かにxfeature2dというディレクトリの中にありました。パスを通したらまた次のモジュール読み込みエラーがでましたが…健気にパスを通していきます。 コードを読んで理解した後に、そのコードでプログラムを実行するという意味でしたが誤用かもしれません、すいません。
Chironian

2019/02/01 09:37

状況がよく分からないですが、なんとなくcontfibを適切なビルド手順でビルドしていないように感じます。 OpenCVは結構しっかり作られていますから、公式や適切な解説に則ってビルドすれば、インクルード・パスを試行錯誤で設定するような羽目に陥ることは無い筈です。 しかし、pythonから呼び出せるようにするビルド手順を探すのはたいへんかも知れません。もし存在するのであればpythonから呼び出せるプリビルド版のcontribをダウンロード/セットアップすることがお薦めです。
deb

2019/02/04 09:46

自分でも問題がよく分からず、まとまりのない質問になってしまって申し訳ありませんでした。 確かにOpenCVの中に欲しいヘッダはだいたい入っていました。 蓋を開けてみたら、私のインクルードの仕方が間違っていて、 PATHを通すときに \Anaconda3\Library\include\opencv2; インクルードのときに opencv2/xfeatures2d.hpp のようにopencv2を重複して書いていたのが悪かったみたいです。 他にもこのようなミスが何個かありました。 あと普段Pythonを使っているので癖でPythonのバージョンを書いてしまいましたが、 今回はC++で取り組んでいました。 何から何までめちゃくちゃで申し訳ありません。以後気をつけます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問