亲爱的StackOverFlow专家, 我搜索并搜索了这个问题的解决方案,但没有找到答案。我找到了有类似问题而不是答案的人。如果我忽视了一个解决方案,我谦卑地请求你的原谅。有了这个,我请你考虑我的提交。
我在Visual Studio 2010 x64中有一个简单的OpenCV 2.4.11测试代码
#include <opencv\cv.h>
#include <opencv\highgui.h>
#include <opencv2\opencv.hpp>
#include <opencv2\core\types_c.h>
using namespace cv;
int main(){
IplImage* img=cvLoadImage("C:\\Users\\Russ\\Pictures\\3-7-15\\_DSC8489.jpg"); //change the name
cvNamedWindow("Example1",CV_WINDOW_NORMAL );
cvShowImage("Example1",img);
cvWaitKey(0);
cvReleaseImage(&img);
cvDestroyWindow( "Example1");
return 0;
}
当我构建这个时,我收到错误
C:\ opencv \ build \ include \ opencv2 / core / types_c.h(55):致命错误C1083:无法打开包含文件:'assert.h':没有这样的文件或目录
所有opencv包含都包含在我的属性路径中,我的OpenCV库也包含在内。当我打开types_c.h文件时,我看到以下
/*M///////////////////////////////////////////////////////////////////////////////////////
//
// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.
//
// By downloading, copying, installing or using the software you agree to this license.
// If you do not agree to this license, do not download, install,
// copy or use the software.
//
//
// License Agreement
// For Open Source Computer Vision Library
//
//M*/
#ifndef __OPENCV_CORE_TYPES_H__
#define __OPENCV_CORE_TYPES_H_
#if !defined _CRT_SECURE_NO_DEPRECATE && defined _MSC_VER
# if _MSC_VER > 1300
# define _CRT_SECURE_NO_DEPRECATE /* to avoid multiple Visual Studio 2005 warnings */
# endif
#endif
#ifndef SKIP_INCLUDES
#include <assert.h>
#include <stdlib.h>
#include <string.h>
#include <float.h>
#if !defined _MSC_VER && !defined __BORLANDC__
# include <stdint.h>
#endif
#...
由于assert.h用于调试,我决定注释掉assert.h行。当我再次构建代码时,我遇到了这个错误。
C:\ opencv \ build \ include \ opencv2 / core / types_c.h(56):致命错误C1083:无法打开包含文件:'stdlib.h':没有这样的文件或目录
显然,Visual Studio 2010没有正确设置某些内容,因为它无法找到这些库。有人可以告诉如何在Visual Studio 2010 x64中解决此问题。谢谢你的帮助。
答案 0 :(得分:0)
对于您的情况,您只需要包含opencv2/opencv.hpp
即可使其正常运行。
此外,由于您使用的是C ++,因此强烈建议您使用OpenCV的C ++ API而不是弃用的C API。代码如下:
#include <opencv2/opencv.hpp>
int main()
{
cv::Mat img = cv::imread("C:\\Users\\Russ\\Pictures\\3-7-15\\_DSC8489.jpg");
cv::namedWindow("Example1", CV_WINDOW_NORMAL);
cv::imshow("Example1", img);
cv::waitKey(0);
cv::destroyWindow("Example1");
return 0;
}
<强>更新强> 如果您仍遇到问题,则应按照this post正确设置OpenCV VS.