2016-04-21 9 views
-2

Ich versuche, die Ausgabe der Elbp-Funktion (die MAT ist) in einen neuen Vektor einfügen, aber ich bekomme: Vektor Index außerhalb des Bereichs Fehler? Irgendwelche Vorschläge?Vektor-Index außerhalb des Bereichs Opencv

vector <Mat> RefPyramids; 
vector <Mat> LBPRefPyramids; 
buildPyramid(PyramidDummy, RefPyramids, 3); 
for (int PyramidIndex = 0; PyramidIndex <= 4; PyramidIndex++) 
{ 
    Mat PramidLoopMat = RefPyramids[PyramidIndex]; 
    Mat LBPLoopMat; 
    lbp::ELBP(PramidLoopMat, LBPLoopMat, radius, neighbors); 
    LBPRefPyramids[PyramidIndex] = LBPLoopMat; 
} 
+1

Wissen Sie, wie viele Elemente in jedem Vektor enthalten sind? Wir brauchen wirklich einen [mcve], um dir helfen zu können. – NathanOliver

+0

@NathanOliver In diesem Fall erwarte ich, dass die Vektorgrößen 4 sind. RefPyramiden Vektor hat eine Größe von 4, die MAT s sind. Ich möchte nur den LBPREFPyramid-Vektor mit dem LBPLoopMats füllen –

+0

Schauen Sie sich dann Ihren Bereich an. 0 bis 4 ist 5 Elemente nicht 4. Ändern Sie "PyramidIndex <= 4" zu "PyramidIndex <4" – NathanOliver

Antwort

1

Sie sagen, (in einem Kommentar), dass RefPyramids Größe hat 4. Aber Ihr Code verletzt, dass:

 for (int PyramidIndex = 0; PyramidIndex <= 4; PyramidIndex++) 
     { 
      Mat PramidLoopMat = RefPyramids[PyramidIndex]; 

Sie sehen, sind iterieren Sie [0,1,2,3, 4]. Das <= sollte < sein.

Verwandte Themen