我阅读了很多帖子,但我仍然无法找到解决问题的方法。链接库是正确的,代码可以很好地工作很多其他openCV函数,但不适用于findContours。 我要发布我的代码:
int check_broken(Mat src, Mat check){
vector<Mat> contours;
vector<Vec4i> hierarchy;
Mat check_gray,check_g;
cvtColor(src,check_gray,CV_BGR2GRAY);
threshold(check_gray,check_g,100,255,THRESH_BINARY);
namedWindow("ventana",CV_WINDOW_AUTOSIZE);
imshow("ventana",check_gray);
waitKey(0);
Mat dst(check.rows,check.cols,CV_8UC1,Scalar::all(0));
int count = 0;
findContours( check_g, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE );
for (int i = 0; i < contours.size() ; i = hierarchy[i][0]){
Rect r = boundingRect(contours[i]);
if(hierarchy[i][2]<0){
rectangle(check,Point(r.x,r.y), Point(r.x+r.width,r.y+r.height),Scalar(0,0,255),3,8,0);
count++;
}
}
namedWindow("ventana",CV_WINDOW_AUTOSIZE);
imshow("ventana",dst);
waitKey(0);
destroyWindow("ventana");
return 0;
}
我正在发布模式下进行编译,并且所有库都是相同的版本2413,我正在使用VS10。我想知道如何处理这个问题。谢谢你的帮助!
答案 0 :(得分:2)
我正在使用VS10
这是路径:C:\ opencv \ build \ x86 \ vc11 \ bin
您正在链接到错误的库。
您使用的是使用vc11
编译的OpenCV(即Visual Studio 2012),但您使用的是Visual Studio 2010.因此它不会起作用。你可以:
vc10
编译的OpenCV(如果找不到预构建的二进制文件,则需要重新编译OpenCV)