実現したいこと
opencvを使ってウェブカメラの映像を4分割して、1つずつウィンドウに表示する。
(可能であれば出力するウィンドウは大きさを変えられるようにしたい)
前提
Microsoft Visual StudioでOpenCVを使うための練習をしています。
ウェブカメラの映像を分割して表示するプログラムを作ったところ、
以下のエラーメッセージが発生しました。解決策のご教授お願い致します。
個人的にはstdafx.hのパスが悪さをしていると思っています。
発生している問題・エラーメッセージ
エラー (アクティブ) E0020 識別子 "roi4" が定義されていません syuukyoku C:\Users\PC70R183\source\repos\syuukyoku\syuukyoku\syuukyoku.cpp 30
エラー (アクティブ) E0020 識別子 "roi3" が定義されていません syuukyoku C:\Users\PC70R183\source\repos\syuukyoku\syuukyoku\syuukyoku.cpp 29
エラー (アクティブ) E0020 識別子 "roi2" が定義されていません syuukyoku C:\Users\PC70R183\source\repos\syuukyoku\syuukyoku\syuukyoku.cpp 28
エラー (アクティブ) E0020 識別子 "roi1" が定義されていません syuukyoku C:\Users\PC70R183\source\repos\syuukyoku\syuukyoku\syuukyoku.cpp 27
エラー (アクティブ) E1696 ソース ファイルを開けません "stdafx.h" syuukyoku C:\Users\PC70R183\source\repos\syuukyoku\syuukyoku\syuukyoku.cpp 1
エラー C1083 include ファイルを開けません。'stdafx.h':No such file or directory syuukyoku C:\Users\PC70R183\source\repos\syuukyoku\syuukyoku\syuukyoku.cpp 1
該当のソースコード
#include <stdafx.h>
#include <opencv2/opencv.hpp>
#pragma comment(lib, "opencv_world454d.lib")
using namespace std;
using namespace cv;
int main()
{
VideoCapture cap(0); // ビデオファイルを開く
if (!cap.isOpened()) { // ビデオファイルが開けないとき
cout << "ビデオファイルが開けません。";
cin.get();
return -1;
}
Mat src, roi; // Matオブジェクト生成 while (1) { // ループ開始 cap >> src; // 1フレーム読み込み if (src.empty()) break; // フレームが空のとき終了 //src1を 4分割するための点を定義 vector<Point> p = { { 0, 0 },{ src.cols / 2, 0 },{ 0, src.rows / 2 },{ src.cols / 2, src.rows / 2 } }; roi1 = src(Rect(0, 0, src.cols / 2, src.rows / 2)); roi2 = src(Rect(src.cols / 2, 0, src.cols / 2, src.rows / 2)); roi3 = src(Rect(0, src.rows / 2, src.cols / 2, src.rows / 2)); roi4 = src(Rect(src.cols / 2, src.rows / 2, src.cols / 2, src.rows / 2)); imshow("入力映像", roi1); // 1フレーム表示 imshow("入力映像", roi2); imshow("入力映像", roi3); imshow("入力映像", roi4); if (waitKey(30) == 27) break; // キー入力待機(30ms) } return 0;
}
試したこと
VC++ディレクトリのインクルードディレクトリに
"C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\atlmfc\src\atl\atls\stdafx.h"
もしくは
"C:\Program Files\Microsoft Visual Studio\2022\Community\DIA SDK\Samples\DIA2Dump\stdafx.h"
↪直らず。
stdaf.hの””の部分を<>に置き換えた
↪直らず。
補足情報(FW/ツールのバージョンなど)
使用ソフト
・Microsoft Visual Studio
Opencv Ver.4.5.4
Cドライブ直下に保存
stdaf.hは上記の2つがありました。
#include <stdafx.h>を
#include <C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\atlmfc\src\atl\atls\stdafx.h>
に変更
↓以下のエラーメッセージが追加で表示される。
エラー (アクティブ) E0276 名前の後に '::' を付けることができるのはクラス名または名前空間名だけです syuukyoku C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\atlmfc\include\atlcom.h 5552' を付けることができるのはクラス名または名前空間名だけです syuukyoku C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\atlmfc\include\atlcom.h 5616
エラー (アクティブ) E0276 名前の後に '::
エラー (アクティブ) E0276 名前の後に '::~' を付けることができるのはクラス名または名前空間名だけです syuukyoku C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.35.32215\atlmfc\include\atlcom.h 5640
回答2件
あなたの回答
tips
プレビュー