1. 编译第一个opencv程序,出现了如下的错误。
[plain] view plain copy
1>openCVTest.obj : error LNK2019: 无法解析的外部符号 _cvReleaseImage,该符号在函数 _wmain 中被引用
1>openCVTest.obj : error LNK2019: 无法解析的外部符号 _cvDestroyWindow,该符号在函数 _wmain 中被引用
1>openCVTest.obj : error LNK2019: 无法解析的外部符号 _cvWaitKey,该符号在函数 _wmain 中被引用
1>openCVTest.obj : error LNK2019: 无法解析的外部符号 _cvShowImage,该符号在函数 _wmain 中被引用
1>openCVTest.obj : error LNK2019: 无法解析的外部符号 _cvNamedWindow,该符号在函数 _wmain 中被引用
1>openCVTest.obj : error LNK2019: 无法解析的外部符号 _cvLoadImage,该符号在函数 _wmain 中被引用
2. fatal error C1010错误,具体错误信息如下:
[plain] view plain copy
detection.cpp(11): fatal error C1010: 在查找预编译头时遇到意外的文件结尾。是否忘记了向源中添加“#include "StdAfx.h"”?
3. 在Visual Studio中读取文件或者haarcascade_frontalface_alt.xml时文件的格式问题。正确的路径格式应为"C:/path"或者为"C:\\path",Windows下默认的"C:\path"这样的格式是错误,会导致一些读取文件上的错误。
4. Error opening file (../../modules/highgui/src/cap_ffmpeg_impl.hpp:529)错误
主要原因是读取的文件的路径不正确,结合第三个错误进行改正。
5. 通过cv.cvtColor()函数将图像转为灰度图像时发生错误,错误信息如下:
[plain] view plain copy
OpenCV Error: Assertion failed (scn == 3 || scn == 4) in cv::cvtColor, file ........\opencv\modules\imgproc\src\color.cpp, line 3737 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.error: ........\opencv\modules\imgproc\src\color.cpp:3737: error: (-215) scn == 3 || scn == 4 in function cv::cvtColor
Python:cv2.imread(filename[, flags])
这是该函数的语法。这个flags参数指定加载图像的color类型:如果大于0,返回一个3通道的彩色图像;如果为0,返回一个灰度图像;如果小于0,则返回加载的图像本身(with alpha channel)。
将第二个参数0去掉后,果然问题就解决了。
6. imread()读取错误
首先看看是不是文件的路径错误,如果路径正确的情况下仍然出现错误,很有可能是配置opencv的dll的问题,比如你的程序运行的是debug,但是opencv的dll却是release版本;或者运行的是release,但是opencv的dll却是debug版本。一句话就是运行和dll的版本不匹配。