我正在做一个图像分类项目,想通过使用 OpenCV HOGDescriptor 来计算图像的 HOG 特征。网上有一些样品可用,但它们对我不起作用。有一个我无法理解的 open_stackdumpfile-error。我设置了一个新的空项目来识别错误,这就是我卡住的地方:
#include <cstdio>
#include <stdlib.h>
#include <iostream>
#include "opencv2\opencv.hpp"
#define IMG_PATH "D:\\ImageDatabase\\IMG_0024.png"
using namespace std;
int main(void) {
cout << "hi!" << endl;
cv::Mat mat = cv::imread(IMG_PATH);
// show the image
cv::namedWindow("Image", CV_WINDOW_AUTOSIZE);
cv::moveWindow("Image", 0, 0);
cv::imshow("Image", mat);
cv::HOGDescriptor hog;
vector<float> descriptors;
hog.compute(mat, descriptors);
cout << "finished." << endl;
cv::waitKey(0);
cout << "bye." << endl;
return EXIT_SUCCESS;
}
计算描述符并用值填充向量。这就是输出:
hi!
finished.
bye.
1 [main] TestProject 5932 open_stackdumpfile: Dumping stack trace to TestProject.exe.stackdump
stackdump 文件如下所示:
Stack trace:
Frame Function Args
你有什么想法,为什么会发生这个错误,它意味着什么以及我该如何解决它?我正在使用 Cygwin 使用 Windows 7 机器,并尝试了 OpenCV 2.4.1 和 2.4.6,但错误仍然相同。
感谢您对我可能做错的每一个提示!
[编辑] 编译器选项等如下所示:
make all
rm -f TestProject.o TestProject.exe
g++ -O2 -g -Wall -fmessage-length=0 -I/cygdrive/D/VZE/Tools/opencv246/opencv/build/include -I/cygdrive/D/VZE/Tools/opencv246/opencv/build/include/opencv -I/cygdrive/D/VZE/Tools/opencv246/opencv/build/include/opencv2 -c -o TestProject.o TestProject.cpp
g++ -o TestProject.exe TestProject.o -L/cygdrive/D/VZE/Tools/opencv246/opencv/build/x86/mingw/bin -lopencv_highgui246 -lopencv_core246 -lopencv_imgproc246 -lopencv_objdetect246