Wycena Błędu * * * Błąd Asercji
Contents
Przysłowie określa okoliczności, które Twoim zdaniem dotyczą tylko określonych okresów w Twojej szkole. Jeśli ten warunek nie jest spełniony, cała asercja nie powiedzie się, wykonanie rozwiązania zostanie zatrzymane i pojawi się okno dialogowe sytuacji.
Kiedy rozpoczynam działalność, otrzymuję następujący błąd:
Błąd OpenCV: nie można powiedzieć (scn==6 Scn ||==4) z cv::cvtColor, start C:builds2_4_PackSlave-win64-vc12-sharedopencv modułyimgprocsrccolor . cpp, linia 3737
#include "opencv2/core/core.hpp"#include "opencv2/contrib/contrib.hpp"#include "opencv2/highgui/highgui.hpp"#include „opencv2/imgproc/imgproc.hpp”#include "opencv2/objdetect/objdetect.hpp"#włącz #include #include użyj początkowej przestrzeni nazw;ze standardową przestrzenią nazw;pusty statyczny read_csv (stała linia i nazwa pliku, pliki wektorowe i obrazy, chmura wektorów i tagów, ogranicznik położenia = ';') std::ifstream file(nazwa_pliku.c_str(), ifstream::in); jeśli (!plik) archipelago error_message = "Nie określono prawidłowego pliku gniazda gniazda, sprawdź wybrane z podanych nazw plików."; CV_Error(CV_StsBadArg, komunikat o błędzie); linia franczyzowa, ścieżka, etykieta odmiany; chociaż (getline(plik, linia)) ciąg strumieni ciągi(ciąg); getline(ciąg, ścieżka, ogranicznik); getline(linia, etykieta klasyfikacyjna); w każdej chwili (!path.empty() && !classlabel.empty()) images.push_back(imread(ścieżka, 0)); label.push_back(atoi(classlabel.c_str())); int main(int argc, const char *argv[]) { // Zatwierdź argumenty lidera, zużywając print // zakładając, że okaże się, że walka nie jest ustawiona. jeśli znajdziesz (argc != 4) cout "użyj: << " << argv[0] << za pomocą " Endl; << cout << "t -- Ścieżka do wodospadu Haar podczas wykrywania twarzy." << koniec; cout << "t — Ścieżka do pliku CSV ze znalezioną bazą danych." << koniec; cout << "t -- identyfikator urządzenia kamery internetowej powinien pochodzić z ramek." << koniec; produkować (1); // Uzyskaj drogę do swojego pliku CSV: cykl fn_haar dopasowuje łańcuch (argv[1]); sekwencja fn_csv równa się string(argv[2]); identyfikatory urządzeń int = atoi(argv[3]); // Te wektory zawierają logo, a zatem odpowiadające im etykiety: obrazy wektorowe; znaczniki wektorowe ; // badanie danych (nie powiodło się, jeśli nie podano doskonałej nazwy pliku wejściowego, z dobrym komunikatem o błędzie): Próbować read_csv(fn_csv, obrazy, etykiety); oszustwo (cv::Exception&e) cerr << "Błąd rozsyłania pliku "" << fn_csv << "" Powód: " << e.msg << endl; // nie zaczynamy od niczego innego, co z pewnością moglibyśmy zrobić wyjście (1); // Pobierz wysokość z pierwszej obserwacji. Będziemy tego potrzebować // później w kodzie, aby w końcu poprawić kształt do oryginału // rozmiar I potrzebujemy, aby naprawdę przekształcić nadchodzące twarze do rozmiaru: int im_width równa się images[0].cols; int im_height images[0] = .rows; // Utwórz FaceRecognizer, więc trenuj go za pomocą obrazów nagród: Model Ptr jest bardzo podobny do createFisherFaceRecognizer(); model->pociąg (obrazy, etykiety); // To jest model podczas nauki trybu rozpoznawania twarzy. Wiesz, że // naprawdę trzeba stworzyć klasyfikator, aby uzyskać te zadania rozpoznawania twarzy. // Używamy strumienia włosów, który Ty i Twoja rodzina wklejacie // Argumenty tablicy poleceń: // CascadeClassifier hair_cascade; hair_cascade.load(fn_hair); // Deskryptor użycia urządzenia wideo: Nagłówek przechwytywania wideo (deviceId); // Sprawdź, czy nasza firma powinna używać tego urządzenia: if (!cap.isOpened()) cerr << "Identyfikator urządzenia przechwytującego jest długi << deviceId << "nie można otworzyć." << endl; powrót -1; // Zawiera bieżącą klatkę z urządzenia wideo: płaska rama; tylko do osiągnięcia (;;) { okładka >> rama; // identyczna kopia istniejącej ramki: Pad źródłowy = frame.clone(); // Konwertuj bieżący obraz na skalę szarości: nieciekawy szary; cvtColor(źródło, szary, CV_BGR2GRAY); // Znajdź wszystkie twarze w bieżącej ramce: wektor>twarz; haar_cascade.detectMultiScale(szary, twarze); // W tym momencie powinieneś mieć pozycję has // twarze. Teraz stajemy się twarzami, znajdujemy pomysł i // przekaż opinię do filmu. wybitne, prawda? (liczba całkowita dla i równa się 0; tak naprawdę jestem
Jak osiągnąć naprawę asercji nie powiodło się jako część Pythona?
Upewnij się, że niestandardowa kamera internetowa dobrze współpracuje z różnymi bibliotekami, jeśli chodzi o OpenCV.zmień Przechwytywanie wideo (0) => Przechwytywanie wideo (1)Odinstaluj i ponownie zainstaluj OpenCV.Uruchom ponownie główny nowy edytor kodu lub cokolwiek.Zmień czas na inne konkretne IDE (dla pozycji, z PyCharm na Jupyter Notebook).
[Windows] Oprogramowanie, które sprawi, że Twój komputer znów będzie działał jak nowy