我终于成功让 opencv 2.3.1 能够与 eclipse、mingw 和 32 位 XP 一起工作。当一切正常时,我会发布一份操作指南,因为我找不到该工具链的操作指南。
问题是任何在窗口中显示结果的尝试都会导致未处理的异常。图像保存得很好,而且我能够在它们上运行 Sobel 内核,所以其他一切看起来都很好。当调用namedWindow时它似乎崩溃了。
我在链接器中包含了 libopencv_core231、libopencv_highgui231、libopencv_imgproc231 和 libopencv_legacy231。
这是代码:
#include <cv.h>
#include <highgui.h>
#include <iostream>
using namespace cv;
int main(int argc, char **argv)
{
std::cout<<"Hello"<<std::endl;
//Create image
Mat lena, lenasobel;
//Load lena image
lena = imread("C:\\lena.jpeg");
if(lena.data)
std::cout<<"File has "<<lena.cols<<" rows and "<<lena.rows<<" columns. "<<lena.channels()<<" channels."<<std::endl;
if(!lena.data)
std::cout<<"File Not Read."<<std::endl;
lenasobel=lena.clone();
Sobel(lena,lenasobel,lenasobel.depth(),1,1,3);
std::vector<int> jpg_type;
jpg_type.push_back(100);
jpg_type.push_back(CV_IMWRITE_JPEG_QUALITY);
imwrite("C:\\lenaout.jpeg",lenasobel,jpg_type);
//Save works!
namedWindow( "lena" , CV_WINDOW_AUTOSIZE);
imshow( "lena" ,lena);
return 0;
}
有人有什么想法吗?我不知道下一步该做什么!
最佳答案
这可能是由于这个bug一直徘徊。实际上,我必须设置 BUILD_TYPE=Debug 并禁用所有 SSE 优化才能让 OpenCV 与 Eclipse + MinGW 配合使用。
关于eclipse - nameWindow() 导致 opencv 2.3.1 崩溃? (XP 上的 Eclipse+MinGW,C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7996032/