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

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

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

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

C++

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

Q&A

解決済

1回答

7493閲覧

_TCHAR*

Suginori1996

総合スコア24

OpenCV

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

C++

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

0グッド

0クリップ

投稿2016/01/15 06:35

###プログラムが実行できません
画像の赤色と青色を感知するプログラムを作っています.
ビルドしたところ,以下のようなエラーが発生します.
ご協力お願いします.

###ソースコード
//#include "stdafx.h"
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace cv;

int _tmain(int argc, _TCHAR* argv[])
{
//-----------------原画像----------------------
Mat src_image = imread("IMG_2941.JPG");
namedWindow("原画像");
imshow("原画像", src_image);

int width = src_image.cols; int height = src_image.rows; //--------HSV擬似画像への変換------------------ Mat hsv_image; cvtColor(src_image, hsv_image, CV_BGR2HSV); uchar hue, sat, val; Mat red_image = Mat(Size(width, height), CV_8UC1); Mat blue_image = Mat(Size(width, height), CV_8UC1); for (int y = 0; y < height; y++) for (int x = 0; x < width; x++) { //---------------H,S,Vへの分解----------- hue = hsv_image.at<Vec3b>(y, x)[0]; sat = hsv_image.at<Vec3b>(y, x)[1]; val = hsv_image.at<Vec3b>(y, x)[2]; //----------------赤の検出--------------- if ((hue < 8 || hue > 168) && sat > 100) red_image.at<uchar>(y, x) = 0; else red_image.at<uchar>(y, x) = 255; //----------------赤の検出--------------- if ((hue < 97 || hue > 117) && sat > 100) blue_image.at<uchar>(y, x) = 0; else blue_image.at<uchar>(y, x) = 255; } namedWindow("赤検出画像"); imshow("赤検出画像", red_image); namedWindow("青検出画像"); imshow("青検出画像", blue_image); waitKey(0); destroyAllWindows(); return 0;

}
###エラーメッセージ
1>------ ビルド開始: プロジェクト:RL, 構成:Release Win32 ------
1>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\V120\Microsoft.CppBuild.targets(388,5): warning MSB8028: The intermediate directory (Release) contains files shared from another project (15sotuken.vcxproj). This can lead to incorrect clean and rebuild behavior.
1> RL.cpp
1>RL.cpp(7): error C2061: 構文エラー : 識別子 '_TCHAR'
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========

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

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

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

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

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

guest

回答1

0

ベストアンサー

プロジェクトを作成するときに、Unicode対応のビルド形式に設定されていることが原因でしょう。
[プロジェクト] メニューの [プロパティ] からプロジェクトの設定画面を開きます。
[構成プロパティ]->[全般]->[文字セット]の項目が、Unidcode文字セットを使用する になっているのではありませんか。
これをマルチバイト文字セットを使用する にします。

int _tmain(int argc, _TCHAR* argv[]) の行は、下記のように直します。
int main(int argc, char* argv[])

これでいかがでしょうか。

投稿2016/01/15 06:44

eulick

総合スコア21

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

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

Suginori1996

2016/01/15 07:01

ありがとうございます!エラーは発生しなくなりました! しかし一番上のコメントアウトしている#include "stdafx.h" の部分の問題が解決しません. 1>------ ビルド開始: プロジェクト:15sotuken, 構成:Release Win32 ------ 1> camera.cpp 1>camera.cpp(1): fatal error C1083: include ファイルを開けません。'stdafx.h':No such file or directory ========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ========== このようなエラーが出てしまいます. 解決法がお分かりになるのであればご協力お願いします.
eulick

2016/01/15 07:26

プリコンパイル済みヘッダーというものを使用する設定になっています。 さきほどのプロパティ画面から、[C/C++]を選択します。 [プリコンパイル済みヘッダー]プロパティ ページをクリックします。 [プリコンパイル済みヘッダーを使用しない] プロパティに変更します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問