###実現したい事
visual studioでOpenCVを用いて画像を2値化するC++のソースを書いたのですが、エラーが出てうまくいきません。エラーの内容的に冒頭のincludeのところをまちがっているのかなと思うのですが、どう修正すればよいか分かりません。分かる方回答お願いします。
###エラー文
重大度レベル コード 説明 プロジェクト ファイル 行 抑制状態 警告 C4005 'CV_EXT': マクロが再定義されました。 Black \black\black.cpp 7 エラー (アクティブ) E0130 '{' が必要です Black \Black\Black.cpp 17 エラー (アクティブ) E1696 ソース ファイルを開けません "opencv2/core/core.hpp" Black \Black\Black.cpp 11 エラー (アクティブ) E1696 ソース ファイルを開けません "opencv2/highgui/highgui.hpp" Black \Black\Black.cpp 12 エラー C1010 プリコンパイル ヘッダーを検索中に不明な EOF が見つかりました。'#include "stdafx.h"' をソースに追加しましたか? Black \black\black.cpp 61 エラー (アクティブ) E0020 識別子 "adaptiveThreshold" が定義されていません Black \Black\Black\Black.cpp 38 エラー (アクティブ) E0020 識別子 "ADAPTIVE_THRESH_GAUSSIAN_C" が定義されていません Black \Black\Black\Black.cpp 38 エラー (アクティブ) E0020 識別子 "cvtColor" が定義されていません Black \Black\Black\Black.cpp 26 エラー (アクティブ) E0020 識別子 "CV_BGR2GRAY" が定義されていません Black \Black\Black\Black.cpp 26 エラー (アクティブ) E0020 識別子 "CV_WINDOW_AUTOSIZE" が定義されていません Black \Black\Black\Black.cpp 41 エラー (アクティブ) E0020 識別子 "imread" が定義されていません Black \Black\Black\Black.cpp 22 エラー (アクティブ) E0020 識別子 "imshow" が定義されていません Black \Black\Black\Black.cpp 48 エラー (アクティブ) E0020 識別子 "Mat" が定義されていません Black \Black\Black\Black.cpp 22 エラー (アクティブ) E0020 識別子 "Mat" が定義されていません Black \Black\Black\Black.cpp 25 エラー (アクティブ) E0020 識別子 "Mat" が定義されていません Black \Black\Black\Black.cpp 29 エラー (アクティブ) E0020 識別子 "Mat" が定義されていません Black \Black\Black\Black.cpp 37 エラー (アクティブ) E0020 識別子 "namedWindow" が定義されていません Black \Black\Black\Black.cpp 41 エラー (アクティブ) E0020 識別子 "threshold" が定義されていません Black \Black\Black\Black.cpp 30 エラー (アクティブ) E0020 識別子 "THRESH_BINARY" が定義されていません Black \Black\Black\Black.cpp 30 エラー (アクティブ) E0020 識別子 "THRESH_BINARY_INV" が定義されていません Black \Black\Black\Black.cpp 31 エラー (アクティブ) E0020 識別子 "THRESH_OTSU" が定義されていません Black \Black\Black\Black.cpp 30 エラー (アクティブ) E0020 識別子 "THRESH_TOZERO" が定義されていません Black \Black\Black\Black.cpp 33 エラー (アクティブ) E0020 識別子 "THRESH_TOZERO_INV" が定義されていません Black \Black\Black\Black.cpp 34 エラー (アクティブ) E0020 識別子 "THRESH_TRUNC" が定義されていません Black \Black\Black\Black.cpp 32 エラー (アクティブ) E0020 識別子 "waitKey" が定義されていません Black \Black\Black\Black.cpp 55
###ソースコード
C++
1// Black.cpp : アプリケーションのエントリ ポイントを定義します。 2// 3 4#ifdef _DEBUG 5#define CV_EXT "d.lib" 6#else 7#define CV_EXT ".lib" 8#endif 9#pragma comment(lib, "opencv_world341" CV_EXT) 10 11#include <opencv2/core/core.hpp> 12#include <opencv2/highgui/highgui.hpp> 13 14 15int main(int argc, char *argv[]) 16 17 using namespace cv; 18 19 int main(int argc, char **argv){ 20 // (1)load a specified file and convert it into grayscale image 21 const char *imagename = argc > 1 ? argv[1] : "IMG_E2392"; 22 Mat src_img = imread(imagename); 23 if (!src_img.data) 24 return -1; 25 Mat gray_img; 26 cvtColor(src_img, gray_img, CV_BGR2GRAY); 27 28 // (2)apply a fixed-level threshold to each pixel 29 Mat bin_img, bininv_img, trunc_img, tozero_img, tozeroinv_img; 30 threshold(gray_img, bin_img, 0, 255, THRESH_BINARY | THRESH_OTSU); 31 threshold(gray_img, bininv_img, 0, 255, THRESH_BINARY_INV | THRESH_OTSU); 32 threshold(gray_img, trunc_img, 0, 255, THRESH_TRUNC | THRESH_OTSU); 33 threshold(gray_img, tozero_img, 0, 255, THRESH_TOZERO | THRESH_OTSU); 34 threshold(gray_img, tozeroinv_img, 0, 255, THRESH_TOZERO_INV | THRESH_OTSU); 35 36 // (3)apply an adaptive threshold to a grayscale image 37 Mat adaptive_img; 38 adaptiveThreshold(gray_img, adaptive_img, 255, ADAPTIVE_THRESH_GAUSSIAN_C, THRESH_BINARY, 7, 8); 39 40 // (4)show source and destination images 41 namedWindow("Source", CV_WINDOW_AUTOSIZE); 42 namedWindow("Binary", CV_WINDOW_AUTOSIZE); 43 namedWindow("Binary Inv", CV_WINDOW_AUTOSIZE); 44 namedWindow("Trunc", CV_WINDOW_AUTOSIZE); 45 namedWindow("ToZero", CV_WINDOW_AUTOSIZE); 46 namedWindow("ToZero Inv", CV_WINDOW_AUTOSIZE); 47 namedWindow("Adaptive", CV_WINDOW_AUTOSIZE); 48 imshow("Source", src_img); 49 imshow("Binary", bin_img); 50 imshow("Binary Inv", bininv_img); 51 imshow("Trunc", trunc_img); 52 imshow("ToZero", tozero_img); 53 imshow("ToZero Inv", tozeroinv_img); 54 imshow("Adaptive", adaptive_img); 55 waitKey(0); 56 57 58 return 0; 59}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。