Я пытаюсь создать простую программу Opencv на C, которая создает захват файла из .avi и воспроизводит его в окне, выделяя лица. Я запускаю самокомпилированную версию Opencv (я уже пробовал то же самое с изображением в формате jpeg, и это работает).
Сборка идет хорошо, ни ошибок, ни предупреждений, но когда я запускаю ее, консоль выводит это:
Обнаружен неизвестный параметр: «роль сервера». Игнорирование неизвестного параметра «роль сервера».
И программа просто останавливается
Раньше он жаловался на отсутствие файла /home/#user/.smb/smb.conf, поэтому я попытался установить samba (хотя я до сих пор понятия не имею, что samba должна делать во всем этом)
вот мой код:
главный(){
printf("Ciao!");
cvNamedWindow("window", CV_WINDOW_AUTOSIZE);
cvWaitKey(0);
printf("ok");
CvCapture* capture = cvCreateFileCapture("monsters.avi");
CvHaarClassifierCascade* cascade = load_object_detector("haarcascade_frontalface_alt.xml");
CvMemStorage* storage = cvCreateMemStorage(0);
//List of the faces
CvSeq* faces;
while (0<10) {
CvArr* image = cvQueryFrame(capture);
double scale = 1;
faces = cvHaarDetectObjects(image,cascade, storage, 1.2, 2, CV_HAAR_DO_CANNY_PRUNING, cvSize(1,1), cvSize(300,300));
int i;
for(i = 0; i < faces->total; i++ )
{
CvRect face_rect = *(CvRect*)cvGetSeqElem( faces, i );
cvRectangle( image,
cvPoint(face_rect.x*scale,face_rect.y*scale),
cvPoint((face_rect.x+face_rect.width)*scale,(face_rect.y+face_rect.height)*scale),
CV_RGB(255,0,0) , 3, 8, 0);
}
cvReleaseMemStorage( &storage );
cvShowImage("window", image);
}
cvWaitKey(0);
printf("Ciao!");
}
Я благодарю вас за ваш ответ, я переключился на C++ для своих испытаний. Теперь я сделал это:
int main(){
namedWindow("Video", CV_WINDOW_FREERATIO);
VideoCapture cap("sintel.mp4");
if(!cap.isOpened()) // check if we succeeded
return -1;
Mat edges;
for(;;){
Mat frame;
cap>>frame;
cvtColor(frame, edges, CV_BGR2GRAY);
GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
Canny(edges, edges, 0, 30, 3);
imshow("Video", edges);
//cvWaitKey(0);
}
return(0);
}
Теперь он успешно загружает видео и запрашивает кадр, каждый раз, когда я нажимаю клавишу, он, очевидно, запрашивает другой кадр, и все работает нормально, но если я прокомментирую ключ ожидания(), программа просто немного зависнет и вылетит, если я попытаюсь закрыть окно. окно, я начинаю думать, что проблема с кодеками или что-то в этом роде...