c++ डीबग का दावा विफल vc \ include \ vector vector iterator+कक्ष में सीमा से ऑफसेट+ओपनसीवी से मिलान करना



visual-studio-2008 opencv (1)

ओपनसीवी में चैंबर मेलिंग प्रोग्राम को लागू करते समय मैं समस्या से जूझ रहा हूँ

https: // code.ros.org/trac/opencv/browser/trunk/opencv/samples/cpp/chamfer.cpp?rev=4194

निम्नलिखित कोड है जो इसे टेम्प्लेट छवि पढ़ रहा है

और परीक्षण छवि

, मैं वीएस 2008 और ओपनसीवी 2.4.6 का उपयोग कर रहा हूं

#include "stdafx.h"

#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/contrib/contrib.hpp>
#include <iostream>
using namespace cv;
using namespace std;

int main( int argc, char** argv )
{    
    IplImage *src;
    src = cvLoadImage("C:\\Users\\JOSHI\\Desktop\\Images\\logo_in_clutter.png",1);      
    Mat img=cvarrToMat(src);  
    imshow("Mat",img); 

    src = cvLoadImage("C:\\Users\\JOSHI\\Desktop\\Images\\logo.png",1);  
    Mat tpl=cvarrToMat(src);  
    imshow("Mat",tpl); 
    Mat cimg;

    // if the image and the template are not edge maps but normal grayscale images,
    // you might want to uncomment the lines below to produce the maps. You can also
    // run Sobel instead of Canny.    
     Canny(img, img, 5, 50, 3);
     Canny(tpl, tpl, 5, 50, 3);    
    vector<vector<Point> > results;
    vector<float> costs;
    int best = chamerMatching( img, tpl, results, costs );
    if( best < 0 )
    {
        cout << "not found;\n";
        return 0;
    }    
    size_t i, n = results[best].size();
    for( i = 0; i < n; i++ )
    {
        Point pt = results[best][i];
        if( pt.inside(Rect(0, 0, cimg.cols, cimg.rows)) )
           cimg.at<Vec3b>(pt) = Vec3b(0, 255, 0);
    }
    imshow("result", cimg);

    waitKey();
    return 0;
}

यह त्रुटि छवि है

क्या आप मुझे सुझाव दे सकते हैं कि मुझे यह त्रुटि क्यों मिल रही है क्योंकि मैं ओपनसीवी और छवि प्रोसेसिंग के लिए नया हूँ


मुझे एक ही समस्या थी समाधान: http://code.opencv.org/issues/3603 आपको स्रोत से ओपनसीवी डाउनलोड करने की आवश्यकता है, chamfermatching.cpp और टिप्पणी पंक्ति खोलें:

~Matching()
{
    for (size_t i = 0; i<templates.size(); i++) {
        //delete templates[i];
    }
}

फिर आपको ओपनसीवी को फिर से बनाना होगा इसके बाद यह काम करना चाहिए।





computer-vision