Ich habe ein Problem mit meinem Code. Ich versuche, einen Hintergrund Substraktion mit opencv 3.0 auf Visual Studio 2015. Die Funktion main auszuführen ist:Debug Assertion fehlgeschlagen Opencv Funktion
int main()
{
//altrimento creo la finestra
Mat image;
Mat fgMaskMOG2;
Rect mr;
Ptr<BackgroundSubtractor> pKNN;
//imposto la sequenza delle immagini
std::string path = "D:\\ProjectFile\\CoreSaw_DataFusion\\Dataset\\Persona posa oggetto\\gray-%06d.jpg";
VideoCapture sequence(path);
//se non è aperto esco con codice di errore
if (!sequence.isOpened())
{
cerr << "Failed to open Image Sequence!\n" << endl;
return 1;
}
for (;;)
{
//scelgo l'immagine seguente
sequence >> image;
resize(image, image, Size(400,400));
//ridimensiono l'immagine perchè permette una miglior rilevazione
//se vuota finisco la sequenza
if (image.empty())
{
cout << "End of Sequence" << endl;
break;
}
try
{
apply_BackgroundSubstraction(image, fgMaskMOG2);
}
catch (Exception exc)
{
cerr << "Main: " << exc.msg << endl;
}
waitKey(1);
}
return 0;
}
und meine Funktion ist:
void apply_BackgroundSubstraction(Mat image, Mat fgMask)
{
vector< vector<Point> > contours;
try
{
namedWindow("Display window");// Create a window for display.
Ptr<BackgroundSubtractor> pKNN = createBackgroundSubtractorKNN(216, 3500.0, true);
pKNN->apply(image, fgMask); //applico l'algoritmo di background substraction
Mat contourImg = fgMask.clone();
findContours(contourImg, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_NONE);
vector<vector< Point> >::iterator itc = contours.begin();
while (itc != contours.end()) {
Rect rect = boundingRect(Mat(*itc));
rectangle(image, rect, CV_RGB(255, 0, 0));
itc++;
}
imshow("Display window", fgMask);
imshow("Blob", image);
}
catch (Exception exc)
{
cerr << "apply_BackgroundSubstraction: " << exc.msg << endl;
}
}
, wenn diese Funktion beendet, ich habe diesen Fehler
DEBUG ASSERTION FAILDED : IS BLOCK_TYPE_VALID(HEADER->BLOCK_USE)
können Sie mir helfen?
Wurde opencv mit Visual Studio 14 2015 erstellt? – drescherjm
ja, ich benutze cmake mit Visual Studio 14 2015 –