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

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

新規登録して質問してみよう
ただいま回答率
85.70%
Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Visual Studio

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

OpenCV

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

C++

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

Q&A

解決済

3回答

56469閲覧

【Visual C++】「E1696 ソース ファイルを開けません」エラーによりサンプルコードが実行できない

yamaji1108

総合スコア19

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Visual Studio

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

OpenCV

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

C++

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

0グッド

0クリップ

投稿2020/05/02 07:56

編集2020/05/02 08:47

前提・実現したいこと

こちらのサイトのExample1を実行させたいです。
http://web.wakayama-u.ac.jp/~wuhy/opencv.pdf

手順通りVisual StudioとOpenCVをインストールし、Example1というプロジェクトを作成し、
下記のソースファイル(Example1.c)をこのプロジェクト内に追加いたしました。

■各ディレクトリ
プロジェクトファイル→C:\Users\user\source\opencv\Example1
OpenCV→C:\Program Files (x86)\opencv
Visual Studio→C:\Program Files (x86)\Microsoft Visual Studio

該当のソースコード

c

1#include <stdio.h> 2#include <stdlib.h> 3// OpenCVのヘッダファイル 4#include <cv.h> 5#include <highgui.h> 6 7int main(int argc, char **argv){ 8 IplImage *image; //画像を扱う構造体 9 char *pixel; //画素のポインタ 10 int x,y,c; //ループカウンタ 11 12 //引数の個数チェック 13 if(argc<3) { 14 fgrintf(stderr,"usage:%s input output\n",argv[0]); 15 exit(1); 16 } 17 18 //画像ファイルの読み込み 19 image = cvLoadImage(argv[1],1); 20 //画像を処理する 21 for(y=0;y<image->height;y++) 22 for(x=0;x<image->width;x++){ 23 24 // (x,y)の座標の画素のアドレスを計算 25 pixel = image->imageData + y*image->widthStep + x*image->nChannels; 26 27 // 各色成分に対して処理 28 for(c=0;c<image->nChannels;c++) 29 // 各色を反転 30 pixel[c] = 255 - pixel[c]; 31 32 } 33 34 // 処理した画像をファイルに書き込む 35 cvSaveImage(argv[2],image); 36 //画像の開放 37 cvReleaseImage(&image); 38 return 0; 39}

実行するとエラーメッセージが出力されてしまいます。

イメージ説明

一番上のエラーコード「E1696」で検索してみると、INCLUDE環境変数のパスが通ってないみたいなので、
下記のように構成プロパティからopencvのincludeディレクトリを手動で追加してみたのですが、

イメージ説明

イメージ説明

余計にエラーメッセージが増えてしまいました。

パスの設定の仕方が間違っていますでしょうか。
どうか、ご教授のほどお願いします。

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

・Microsoft Visual Studio Community 2019
Version 16.5.4
・OpenCV 3.4.3

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

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

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

下記のような質問は推奨されていません。

  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

pepperleaf

2020/05/02 08:22

アップされたコードは、.c ですが、エラーの出ている画面は、.cpp となっていますが、どちら?
yamaji1108

2020/05/02 08:44

失礼いたしました。 正しくは.cです。 紛らわしくて申し訳ありませんが、Example1.cppはプロジェクト作成したときに自動的に作られるHello Worldソースファイルなので無関係です。
episteme

2020/05/02 09:05

件のサイトのサンプル、OpenCV 0.9.9 て...すっごく旧いけどだいじょうぶ?
yamaji1108

2020/05/02 09:12

ご指摘ありがとうございます。 友人から「こういうのから始めれば?」と教えてもらったサイトなのですが、これを使って勉強するのは非効率でしょうか。 一応「OpenCVによる画像処理入門 改訂第2版」という教材も買ったのでそれを進めるべきでしょうか。
pepperleaf

2020/05/02 09:21

> 「OpenCVによる画像処理入門 改訂第2版」 こちらでしょうか? <https://www.kspub.co.jp/book/detail/1538290.html> 2017年発行みたいなので、良いでしょうか? ここから、サンプルプログラムもダウンロードできるようですね。 C言語がサポート対象になっているところが、もう古いですね。
Bull

2020/05/02 09:37

なぜ .c でコンパイルしているのでしょうか? 当方の環境の問題かも知れませんが、OpenCV 3.x で .c のプログラムのビルドに成功したことがないです。 .cpp でプログラムを作成してはダメなのでしょうか?
yamaji1108

2020/05/02 10:36

pepperleaf様 この教材も2年以上古いのですね。。サイトよりは新しいと思うので、こちらでまずは頑張ります。

回答3

1

ベストアンサー

当方の環境 (Windows10, Visual Studio 2019, OpenCV 3.1.0) ではソースファイルを.cから.cppに変更して、

#include <cv.h> #include <highgui.h>

#include <opencv2/opencv.hpp>

にしたら、ビルド・実行できました。

なお、インクルード ディレクトリはC:\Program Files (x86)\opencv\build\includeだけにした方がいいと思います。

投稿2020/05/02 10:14

Bull

総合スコア986

yamaji1108👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

回答へのコメント

yamaji1108

2020/05/02 10:40

Bull様 ありがとうございます。そもそも.cファイルで作ること自体がおかしかったのですね。 ご指摘の通り.cppに変更したらビルドに成功いたしました! インクルードディレクトリの件もありがとうございます。今後気を付けます。
Bull

2020/05/02 11:51

ちょっと情報が不確かだったので訂正します。 必ずしも .c でビルドができないわけではないようです。 OpenCV のバージョンによっては .c でもビルドが通ります。 質問のソースも少し手直しすれば、OpenCV 3.1.0 ならば警告が出るものの、ビルドできて実行もできました。 ただ、今更 IplImage などの C API を使用する必要があるのかどうかは検討した方がいいように思います。

1

詳細な環境が不明ですが、以下の点はどうなっているでしょうか?

OpenCVのバージョンはどうなっているでしょうか?
OpenCVの最近のバージョンでは、C言語はサポートされていません。
(少し前の質問にもあります)
参照されている サイトですが、 WindowsXpとか書かれており、かなり古いと思われます。
エラーを見ると、ファイル"algorithm" となっていますが、このファイルは?

別の C++のサイトを参考にすべきではないでしょうか?

投稿2020/05/02 08:53

pepperleaf

総合スコア6383

yamaji1108👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

回答へのコメント

yamaji1108

2020/05/02 10:43

ご回答いただき、ありがとうございました。無事.cppファイルにすることで解決いたしました。 古いものでやっていただこともありC言語のファイルでした。 他のもので勉強を進めます。

1

cv.h と highgui.h が見つからないと言ってます。どこにあるんでしょうか。
標準のヘッダファイルではないですよね

投稿2020/05/02 08:12

y_waiwai

総合スコア87204

yamaji1108👍を押しています

下記のような回答は推奨されていません。

  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

また依頼した内容が修正された場合は、修正依頼を取り消すようにしましょう。

回答へのコメント

yamaji1108

2020/05/02 08:55

ご回答いただき、ありがとうございます。 探したところ2つのファイル(cv.h、highgui.h)は C:\Program Files (x86)\opencv\sources\include\opencv の中にありましたので、画像2枚目の通り、構成プロパティにてインクルードパスに C:\Program Files (x86)\opencv\sources\include\opencv を加えました。 更にcv.hの中で#include "opencv2/core/core_c.h"などの記載もあったため、core_c.hのいる場所を確認し、インクルードパスに C:\Program Files (x86)\opencv\build\include も追加した次第でございます。 説明が不足しており、申し訳ございません。
y_waiwai

2020/05/02 08:57

あとはそのエラーのとおり、宣言が不足してたり文法がおかしかったりってことですね。 それをどーにかしたいならコードを提示しましょう
yamaji1108

2020/05/02 10:41

ありがとうございます。コードも必ず載せるよう心がけます。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.70%

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

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

質問する

同じタグがついた質問を見る

Visual C++

Microsoft Visual C++はWindowsのCとC++の統合開発環境(IDE)であり、コンパイラやデバッガを含んでいます。

Visual Studio

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

OpenCV

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

C++

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