2017-08-06 4 views
0

Je travaille actuellement sur un projet de traitement vidéo sur Raspberry Pi 3 en utilisant les bibliothèques OpenCV. En tant que guide, je lis un livre de cuisine de programmation d'application de vision par ordinateur opencv2. Si vous êtes familier avec ce livre, il explique tout sur windows visual studio. Mais je suis incapable de compiler des choses en utilisant cmake. Et tout fonctionne bien.Opencv framboise pi 3 jeu vidéo C++

#include<iostream> 
#include<opencv2/highgui/highgui.hpp> 
#include<opencv2/core/core.hpp> 
int main() 
{ 
// Open the video file 
cv::VideoCapture capture("../bike.avi"); 
// check if video successfully opened 
if (!capture.isOpened()){ 
std::cout<<"Error loading video!.."<<std::endl; 
return 1; 
} 
// Get the frame rate 
double rate= capture.get(CV_CAP_PROP_FPS); 
bool stop(false); 
cv::Mat frame; // current video frame 
cv::namedWindow("Extracted Frame"); 
// Delay between each frame in ms 
// corresponds to video frame rate 
int delay= 1000/rate; 
// for all frames in video 
while (!stop) { 
// read next frame if any 
if (!capture.read(frame)) 
break; 
cv::imshow("Extracted Frame",frame); 
// introduce a delay 
// or press key to stop 
if (cv::waitKey(delay)>=0) 
stop= true; 
} 
// Close the video file. 
// Not required since called by destructor 
capture.release(); 
} 

Dans l'éditeur de livre utilise ce code. Et je sais que ce code fonctionne sur Windows Linux, mais pas sur Raspberry Pi. J'ai changé bike.avi avec une vidéo que j'ai enregistrée avec raspicam. raspivid -o bike.h264 -h 620 -w 480 -fps 15. Mais je reçois toujours Error loading video!... Ps: je peux lire la vidéo bike.avi que j'ai téléchargée sur le site des livres via le lecteur vlc en utilisant ssh -X.

fichier Mon CMakeLists.txt:

cmake_minimum_required(VERSION 2.8) 
project(salt) 
FIND_PACKAGE(OpenCV REQUIRED) 
add_executable(a.out main.cpp) 
TARGET_LINK_LIBRARIES(a.out ${OpenCV_LIBS}) 
+0

Essayez d'installer la première moitié des paquets que je suggère ici au moins et voir si cela aide ... https://stackoverflow.com/a/44972255/2836621 –

+0

@MarkSetchell Certains d'entre eux n'étaient pas disponibles pour raspi mais toujours le même erreur .. – ssovukluk

Répondre

0

J'ai découvert le problème. OpenCV avec webcams usb fonctionne très bien sur pi de framboise. Mais quand il s'agit d'utiliser l'appareil photo raspverry pi, ce n'est pas pris en charge. C'est pourquoi certains développeurs ont créé des bibliothèques RaspiCam qui fonctionnent ensemble avec OpenCV. Ils fournissent même des configurations cmake. Je l'ai installé et capturé la vidéo autour de 25fps fonctionne très bien. Cette solution est pour les utilisateurs C++. Si vous codez avec python, il suffit de rechercher python framboise pi caméra OpenCV.

+0

Comment cela peut-il être correct? Vous avez enregistré un fichier vidéo h264 en utilisant 'raspivid' et cela doit fonctionner correctement parce que je le fais tout le temps. Ensuite, vous avez demandé à OpenCV de lire un fichier vidéo (pas un appareil photo connecté par USB, et non un appareil photo Raspberry Pi CSI), et il peut lire les fichiers vidéo indépendamment de l'origine du fichier et de la connexion de l'appareil photo à ce moment. Je ne suis pas sûr de comprendre ce que vous dites ... –

+0

Vous avez raison ce que vous dites. Tout ce que je peux dire, c'est que les bibliothèques OpenCV n'ont pas fonctionné pour moi. Et ces gars-là ont créé une solution pour ce problème https://www.uco.es/investiga/grupos/ava/node/40. Mais vous avez raison, il ne devrait pas y avoir de problème avec le fichier vidéo enregistré. Mais j'ai la même erreur chaque fois que j'essaie. – ssovukluk