首页 文章

opencv imgproc错误(C VS2012)

提问于
浏览
1

好的,所以这里是简单的代码,[ Error Snapshot and Output Log at the bottom ]

Update: 我已经将库名称(Debug Release)从248更改为2413)

Update2: 开启:配置属性 - > C / C - >预处理器 - >预处理到文件会将错误更改为LNK1104错误>第1行 .

#include<opencv2\highgui\highgui.hpp>
#include<iostream>
using namespace std;
using namespace cv;
int main(void)
{
       Mat frame;
       frame=imread("room.jpg",CV_LOAD_IMAGE_UNCHANGED);
       while (waitKey(30)!=27) //27 is ascii equivalent of esc key
       {
              imshow("Image", frame); //loop line 1
       }
}

这是我在本教程中使用的Visual Studio 2012中使用的 OpenCV configuration settingshttps://www.youtube.com/watch?v=v-VgWxkVp2w


  • 下载OpenCV 2.4.8(但我使用的是版本2413)

  • 创建Win32控制台应用程序

  • 配置opencv .. 3.1 . 菜单项目---- $ ProjectName属性

3.2 . 选择Configuration Manager ...并添加x64平台

3.3 . 在配置字段中,选择All configuration 3.3.1 . 在Configuration Properties ---- C / C ---- Additional Include Directories中,添加opencv include文件夹

$opencv\build\include
$opencv\build\opencv
$opencv\build\opencv2

注意:$ opencv是您已安装opencv的文件夹

3.3.2 . 在Configuration Properties ---- Linker ---- Additional Library Directories中,添加opencv库文件夹$ opencv \ build \ x64 \ vc11 \ lib

3.4 . 在配置字段中,选择调试模式3.4.1 . 在Configuration Properties ---- Linker ----附加依赖----

添加依赖库opencv_stitching248d.lib opencv_contrib248d.lib opencv_videostab248d.lib opencv_superres248d.lib opencv_nonfree248d.lib opencv_gpu248d.lib opencv_ocl248d.lib opencv_legacy248d.lib opencv_ts248d.lib opencv_calib3d248d.lib opencv_features2d248d.lib opencv_objdetect248d.lib opencv_highgui248d.lib opencv_video248d.lib opencv_photo248d.lib opencv_imgproc248d . lib opencv_flann248d.lib opencv_ml248d.lib opencv_core248d.lib

注意:上面的这些文件位于 . \ opencv \ build \ x64 \ vc11 \ lib \

3.5 . 在配置字段中,选择发布模式3.5.1 . 在配置属性----链接器----附加依赖项----添加依赖库opencv_stitching248.lib opencv_contrib248.lib opencv_videostab248.lib opencv_superres248.lib opencv_nonfree248.lib opencv_gpu248.lib opencv_ocl248.lib opencv_legacy248.lib opencv_ts248.lib opencv_calib3d248 . lib opencv_features2d248.lib opencv_objdetect248.lib opencv_highgui248.lib opencv_video248.lib opencv_photo248.lib opencv_imgproc248.lib opencv_flann248.lib opencv_ml248.lib opencv_core248.lib注意:上面这些文件位于 . \ opencv \ build \ x64 \ vc11 \ lib \

3.6 . 将$ opencv \ build \ x64 \ v11 \ bin添加到系统环境路径3.7 . 重启Visual Studio


所以之前它正在使用VC11,然后我在我的代码中包含imgproc,并且因为这个错误似乎没有消失 . 我甚至尝试过使用VC12 .

为什么我看到这个错误,我的代码中是 not even using imgproc

是的,我一直是一项很好的运动而且我是徒劳的 . 所以我真的需要专家的建议,谁可以成为初学者,因为从代码中可以看出我完全是 new to OpenCV .

Thanks 提前人 .


OutPut:

1> ------ Build build:项目:OpenCV2,配置:调试x64 ------ 1> Source.cpp 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp (141):错误C2146:语法错误:在标识符'ksize' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(141)之前缺少';':错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(142):错误C2146:语法错误:缺少';'标识符'anchor' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(142):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(224):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(224):错误C2143:语法错误:'<'之前缺少',' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(234):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(234):错误C2143:语法错误:在'<' 1> D:\ OpenCV之前缺少',' opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(241):错误C2061:语法错误:标识符'Size' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(243):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(243):错误C2143:语法错误:'&'之前缺少',' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(249):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持默认int 1> d:\ OpenCV的\ OpenCV的\编译\包括\ opencv2 \ imgproc \ imgproc.hpp(249):错误C2143:语法错误:缺少','前'&' 1> d:\ OpenCV的\ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(260):错误C2146:语法错误:缺少';'标识符'ksize' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(260) ):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(261):错误C2146:语法错误:缺少';'标识符'anchor' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(261):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(263):错误C2146:语法错误:缺少';'前标识符'wholeSize' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(263):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(264):错误C2146:语法错误:缺少';'标识符'roi' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(264):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(267):错误C2143:语法错误:在'<' 1> D:\ OpenCV之前缺少';' opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(267):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持默认int 1> d:\的OpenCV \的OpenCV \构建\包括\ opencv2 \ imgproc \ imgproc.hpp(267):错误C2238:意外的标记(一个或多个)之前';' 1> d:\的OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(269):错误C2143:语法错误:'<'之前缺少';' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(269) :错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持默认int 1> d:\的OpenCV \的OpenCV \构建\包括\ opencv2 \ imgproc \ imgproc.hpp(269):错误C2238:意外的标记(一个或多个)之前';' 1> d:\的OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(270):错误C2143:语法错误:在'<' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(270)之前缺少';' :错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持默认int 1> d:\的OpenCV \的OpenCV \构建\包括\ opencv2 \ imgproc \ imgproc.hpp(270):错误C2238:意外的标记(一个或多个)之前';' 1> d:\的OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(271):错误C2143:语法错误:'<'之前缺少';' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(271) :错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持默认int 1> d:\的OpenCV \的OpenCV \构建\包括\ opencv2 \ imgproc \ imgproc.hpp(271):错误C2238:意外的标记(一个或多个)之前';' 1> d:\的OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(272):错误C2143:语法错误:'<'之前缺少';' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(272) :错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(272):错误C2238:';'之前的意外标记1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(274):错误C2143:语法错误:在'<' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(274)之前缺少';' :错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持默认int 1> d:\的OpenCV \的OpenCV \构建\包括\ opencv2 \ imgproc \ imgproc.hpp(274):错误C2238:意外的标记(一个或多个)之前';' 1> d:\的OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(276):错误C2143:语法错误:'<'之前缺少';' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(276) :错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(276):错误C2238:意外前面的令牌';' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(277):错误C2143:语法错误:在'<' 1> D:\ OpenCV \ opencv \ build之前缺少';' \ include \ opencv2 \ imgproc \ imgproc.hpp(277):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(277):错误C2238:';'之前的意外标记1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(278):错误C2143:语法错误:在'<' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp之前缺少';'(278) :错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(278):错误C2238:';'之前的意外标记1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(254):错误C2065:'filter2D':未声明标识符1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(286):错误C2065 :'InputArray':未声明标识符1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(286):错误C2146:语法错误:缺少')'标识符'kernel' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(286):错误C2059:语法错误:')' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(289):错误C2143:语法错误:在'<'之前缺少';' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(289):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(294):错误C2143:语法错误:缺少';' '<' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(294):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(294):错误C2086:'int cv::Ptr':重新定义1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(289):见声明'cv::Ptr' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(300):错误C2143:语法错误:缺少';'之前'<' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(300):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(300):错误C2086:'int cv::Ptr':重新定义1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(289):请参阅声明'cv::Ptr' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(306):错误C2143:语法错误:缺少';'之前'<' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(306):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(306):错误C2086:'int cv::Ptr':重新定义1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(289):请参阅声明'cv::Ptr' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(314):错误C2143:语法错误:缺少';'之前'<' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(314):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(314):错误C2086:'int cv::Ptr':重新定义1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(289):参见'cv::Ptr' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(320)的声明:错误C2146:语法错误:缺少';'之前标识符'getGaussianKernel' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(320):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(323):错误C2143:语法错误:在'<' 1> D:\ OpenCV之前缺少';' opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(323):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(323):错误C2086:'int cv::Ptr':重新定义1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(289):参见'cv::Ptr' 1的声明:D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(327):errorC2065:'OutputArray':未声明标识符1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(327):错误C2146:语法错误:缺少')'标识符'kx' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(327):错误C2182:'getDerivKernels':非法使用类型'void' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(329):error C2059:语法错误:')' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(331):错误C2143:语法错误:缺少';' '<' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(331):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(331):错误C2086:'int cv::Ptr':重新定义1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(289):参见'cv::Ptr' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(335)的声明:错误C2143:语法错误:缺少';'之前'<' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(335):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(335):错误C2086:'int cv::Ptr':重新定义1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(289):见声明'cv::Ptr' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(338):错误C2143:语法错误:缺少';'之前'<' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(338):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(338):错误C2086:'int cv::Ptr':重新定义1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(289):见声明'cv::Ptr' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(342):错误C2143:语法错误:缺少';'之前'<' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(342):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(342):错误C2086:'int cv::Ptr':重新定义1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(289):见声明'cv::Ptr' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(348):错误C2146:语法错误:缺少';'之前标识符'getGaborKernel' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(348):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(348):错误C2086:'int cv::Mat':重新定义1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(320):参见声明'cv::Mat' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(348):错误C2065:'Size':未声明标识符1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(348):错误C2146:语法错误:在标识符'ksize' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \之前缺少')' imgproc.hpp(349):错误C2059:语法错误:')' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(358):错误C2143:语法错误:在'<'之前缺少';' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(358):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(358):错误C2086:'int cv::Ptr':重新定义1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(289):参见'cv::Ptr' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(360)的声明:错误C2143:语法错误:缺少';'之前'<' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(360):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(360):错误C2086:'int cv::Ptr':重新定义1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(289):请参阅声明'cv::Ptr' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(362):错误C2143:语法错误:缺少';'之前'<' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(362):错误C4430:缺少类型说明符 - 假设为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(362):错误C2086:'int cv::Ptr':重新定义1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(289):见声明'cv::Ptr' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(366):错误C2146:语法错误:缺少';'之前标识符'morphologyDefaultBorderValue' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(366):错误C2433:'Scalar':'inline'不允许数据声明1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(366):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(366):错误C2825:'cv::Scalar':必须是类或命名空间后跟'::' 1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(366):错误C2039:'all':不是' global namespace'' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(366): error C2146: syntax error : missing ';' before identifier 'all' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(366): error C3861: 'all': identifier not found 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(369): error C2143: syntax error : missing ';' before '<' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(369): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(369): error C2086: 'int cv::Ptr' : redefinition 1> D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(289) : see declaration of 'cv::Ptr' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(377): error C2146: syntax error : missing ';' before identifier 'getStructuringElement' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(377): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(377): error C2086: 'int cv::Mat' : redefinition 1> D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(320) : see declaration of 'cv::Mat' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(377): error C2061: syntax error : identifier 'Size' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(379): error C2143: syntax error : missing ';' before '<' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(379): error C2182: 'Ptr' : illegal use of type 'void' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(379): error C2086: 'int cv::Ptr' : redefinition 1> D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(289) : see declaration of 'cv::Ptr' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(379): error C2988: unrecognizable template declaration/definition 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(379): error C2059: syntax error : '<' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(379): error C2039: 'delete_obj' : is not a member of ' 全局命名空间'的成员' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(387): error C2065: ' InputArray ' : undeclared identifier 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(387): error C2146: syntax error : missing ')' before identifier ' src ' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(387): error C2182: ' medianBlur ' : illegal use of type ' void ' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(387): error C2059: syntax error : ')' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(389): error C2065: ' InputArray ' : undeclared identifier 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(389): error C2146: syntax error : missing ')' before identifier ' SRC ' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(389): error C2182: '高斯模糊' : illegal use of type '空隙' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(392): error C2059: syntax error : ')' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(394): error C2065: ' InputArray ' : undeclared identifier 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(394): error C2146: syntax error : missing ')' before identifier ' SRC ' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(394): error C2182: '双边滤波器' : illegal use of type '空隙' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(396): error C2059: syntax error : ')' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(398): error C2065: ' InputArray ' : undeclared identifier 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(398): error C2146: syntax error : missing ')' before identifier ' SRC ' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(398): error C2182: ' adaptiveBilateralFilter ' : illegal use of type '空隙' 1>D:\OpenCV\opencv\build\include\opencv2\imgproc\imgproc.hpp(400): error C2059: syntax error : ')” 1> d:\的OpenCV \的OpenCV \ Build \包括\ opencv2 \ imgproc \ imgproc.hpp(400):致命错误C1003:错误计数超过100;停止编译==========构建:0成功,1失败,0最新,0跳过==========


ERROR SCREENSHOT

2 回答

  • 1

    在项目选项(3.3)中,您只需要以下附加内容:

    $opencv\build\include
    

    D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(141):错误C2146:语法错误:缺少';'在标识符'ksize'之前1> D:\ OpenCV \ opencv \ build \ include \ opencv2 \ imgproc \ imgproc.hpp(141):错误C4430:缺少类型说明符 - 假定为int . 注意:C不支持default-int

    错误的 Size 声明导致错误,该声明在 "opencv2/core/core.hpp" 标头中声明 . 其他类型如 InputArrayOutputArray 也在那里宣布 . core.hpp#include <opencv2\highgui\highgui.hpp> 一起包含 . 检查 core.hpp 是否未损坏(例如,不为空) .

    如果您使用Visual Studio 2012 Ultimate,则可以生成include graph并检查 imgproc.hpp 包含在哪里 . 对于上面的程序,它应该如下图所示:

    enter image description here

    如您所见, imgproc.hpp Headers 不会自动包含在内 . 要修复错误,您应该找到包含 imgproc.hpp 的位置 . 我建议检查 Source.cpp 文件的预处理器输出 . 要按照说明here执行此操作 . 查看结果 Source.i 文件并找到包含 imgproc.hpp 的位置 .

    UPDATE:

    Source.i 中,以下行包括 imgproc.hpp

    #line 2 "d:\\program files (x86)\\microsoft visual studio 11.0\\vc\\include\\iosfwd"
    #line 1 "d:\\opencv\\opencv\\build\\include\\opencv2\\imgproc\\imgproc.hpp"
    

    这些行来自 #include "opencv2/core/core.hpp" 中的标准头文件 . 我不知道为什么这个随机 Headers 包含在那里 .

    看起来有一种神奇的功能可以禁用标准头文件 . 在预处理器定义中定义 SKIP_INCLUDES . 在解决方案资源管理器中打开 Project Properties -> C\C++ -> Preprocessor -> Preprocessor Definitions 并在那里添加 SKIP_INCLUDES .

  • 0

    这是一个编译器错误(不是链接器错误)所以它应该与头文件有关,我想 . 你没有在同一个地方安装不同版本的OpenCV吗?这会混淆事情 . 尝试删除所有opencv文件并重新开始 .

相关问题