gpt4 book ai didi

c++ - OpenCV:HOGDescriptor.compute

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:25:35 24 4
gpt4 key购买 nike

我正在做一个图像分类项目,想使用 OpenCV HOGDescriptor 计算图像的 HOG 特征。网上有一些示例,但它们对我不起作用。有一个我无法理解的 open_stackdumpfile 错误。我设置了一个新的空项目来识别错误,这就是我卡住的地方:

#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;
}

计算描述符并用值填充 vector 。那是输出:

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

最佳答案

这个问题已经很老了,但仍然有一些看法,也许这可以帮助一些人:

首先,我没有真正的解决方案。代码一切正常,设置有问题。std::vector<float> descriptors 时程序崩溃超出范围。 OpenCV 以某种方式控制了它,我不知道为什么或如何。我在使用其他一些方法(例如计算 SIFT 描述符等)时也遇到过此类错误。

我假设 Cygwin 上的预编译 OpenCV 版本存在一些问题。通过切换到 Ubuntu 或 Visual Studio 避免使用 Cygwin 为我解决了这个问题。也许手动编译 OpenCV 也可以解决这个问题。

关于c++ - OpenCV:HOGDescriptor.compute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19789365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com