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

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

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

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

OpenCV

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

C++

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

Q&A

4回答

15053閲覧

OpenCV でincludeエラー

NMokku

総合スコア8

include

あるファイルで定義された関数や処理を、別のファイル上でも使用できるようにするプロセスをincludeと呼びます。

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

OpenCV

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

C++

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

0グッド

0クリップ

投稿2017/07/26 16:05

###前提・実現したいこと
VisualStudio2017(以下VS2017)で以下のサンプルコードをコンパイルした際にincludeエラーが発生します。そもそもopencv3.0をインストールすることで、このエラーを解決することが出来るのでしょうか。解決策を教えて頂きたいです。
###発生している問題・エラーメッセージ

\source.cpp(6): fatal error C1083: include ファイルを開けません。'OpenCV3.h':No such file or directory

###該当のソースコード

C++

1#include<iostream> 2#include<vector> 3#include<random> 4#include<string> 5#include<strstream> 6#include"OpenCV3.h" 7 8int main(void) 9{ 10 //グレースケール入力 11 cv::Mat src = cv::imread("test.jpg", cv::IMREAD_GRAYSCALE); 12 13 //ラべリング処理 14 cv::Mat LabelImg; 15 cv::Mat stats; 16 cv::Mat centroids; 17 int nLab = cv::connectedComponentsWithStats(src, LabelImg, stats, centroids); 18 19 // ラベリング結果の描画色を決定 20 std::vector<cv::Vec3b> colors(nLab); 21 colors[0] = cv::Vec3b(0, 0, 0); 22 for (int i = 1; i < nLab; ++i) { 23 colors[i] = cv::Vec3b((rand() & 255), (rand() & 255), (rand() & 255)); 24 } 25 26 // ラベリング結果の描画 27 cv::Mat Dst(src.size(), CV_8UC3); 28 for (int i = 0; i < Dst.rows; ++i) { 29 int *lb = LabelImg.ptr<int>(i); 30 cv::Vec3b *pix = Dst.ptr<cv::Vec3b>(i); 31 for (int j = 0; j < Dst.cols; ++j) { 32 pix[j] = colors[lb[j]]; 33 } 34 } 35 36 //ROIの設定 37 for (int i = 1; i < nLab; ++i) { 38 int *param = stats.ptr<int>(i); 39 40 int x = param[cv::ConnectedComponentsTypes::CC_STAT_LEFT]; 41 int y = param[cv::ConnectedComponentsTypes::CC_STAT_TOP]; 42 int height = param[cv::ConnectedComponentsTypes::CC_STAT_HEIGHT]; 43 int width = param[cv::ConnectedComponentsTypes::CC_STAT_WIDTH]; 44 45 cv::rectangle(Dst, cv::Rect(x, y, width, height), cv::Scalar(0, 255, 0), 2); 46 } 47 48 //重心の出力 49 for (int i = 1; i < nLab; ++i) { 50 double *param = centroids.ptr<double>(i); 51 int x = static_cast<int>(param[0]); 52 int y = static_cast<int>(param[1]); 53 54 cv::circle(Dst, cv::Point(x, y), 3, cv::Scalar(0, 0, 255), -1); 55 } 56 57 //面積値の出力 58 for (int i = 1; i < nLab; ++i) { 59 int *param = stats.ptr<int>(i); 60 std::cout << "area " << i << " = " << param[cv::ConnectedComponentsTypes::CC_STAT_AREA] << std::endl; 61 62 //ROIの左上に番号を書き込む 63 int x = param[cv::ConnectedComponentsTypes::CC_STAT_LEFT]; 64 int y = param[cv::ConnectedComponentsTypes::CC_STAT_TOP]; 65 std::stringstream num; 66 num << i; 67 cv::putText(Dst, num.str(), cv::Point(x + 5, y + 20), cv::FONT_HERSHEY_COMPLEX, 0.7, cv::Scalar(0, 255, 255), 2); 68 } 69 70 cv::imshow("Src", src); 71 cv::imshow("Labels", Dst); 72 cv::waitKey(); 73 74 return 0; 75}

###試したこと
OpenCV3.0.0をnugetを使い導入するも、エラー発生
VS2012でCmakeを使ったOpenCV3.0.0を導入をしてみるもこれもまた駄目でした

###補足情報(言語/FW/ツール等のバージョンなど)
VS2017/C++

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

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

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

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

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

guest

回答4

0

OpenCVのヘッダって、ver3でも<opencv2/opencv.hpp>だと思うんですが...
そのサンプルコードはどこで見つけたんです?なんかオリジナルの改変がある気がします。

投稿2017/07/26 16:26

LouiS0616

総合スコア35660

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

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

0

こんにちは。

グーグル先生は凄いです。ソースの一部で検索したら元ネタが見つかりました。
そのサンプルは使っている人いるのかな?OpenCV3.0から入ったラべリング処理についてですね? 普通に公開されているものへリンクを貼ることに何ら問題はないので、下手に隠さない方が回答しやすいですよ。

さて、OpenCVにOpenCV3.hというファイルは含まれていませんので、OpenCV3.hを公開していないだけ(たぶん単なる漏れ)だと思います。
OpenCVを使ったラベリングに似たようなソースがありました。
こちらはOpenCVのヘッダを直接インクルードしています。
これを参考に#include"OpenCV3.h"を削除して下記を挿入すれば通るだろうと思います。

C++

1#include <opencv2/core.hpp> 2#include <opencv2/imgproc.hpp> 3#include <opencv2/imgcodecs.hpp> 4#include <opencv2/highgui.hpp>

投稿2017/07/26 17:25

Chironian

総合スコア23272

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

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

0

そもそもそんなファイルがないのでincludeするものを間違えています。

cpp

1#include <opencv2/imgproc.hpp> 2#include <opencv2/highgui.hpp> 3#include <opencv2/core.hpp>

このへん(まだ足りないかも)が必要。

投稿2017/07/26 16:32

yumetodo

総合スコア5850

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

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

0

'OpenCV3.h'はどこにありますか?
これがこのエラーの原因に見えます。

投稿2017/07/26 16:14

MasahikoHirata

総合スコア3747

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問