2017-08-06 119 views
0

我目前正在使用OpenCV庫在樹莓派3上進行視頻處理項目。作爲閱讀opencv2計算機視覺應用程序編程手冊的指導。如果您熟悉本書,它將解釋windows visual studio上的所有內容。但是不能用cmake編譯東西。一切正常。Opencv樹莓pi 3視頻播放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(); 
} 

在書的作者使用此代碼。而且我知道這個代碼適用於Linux的Windows等,但不是覆盆子pi。我用一張我用raspicam錄製的視頻改變了bike.avi。 raspivid -o bike.h264 -h 620 -w 480 -fps 15。但我仍然得到Error loading video!..。 Ps:我可以使用ssh -X播放通過vlc播放器從書籍網站下載的bike.avi視頻。

我的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

嘗試安裝我在這裏至少建議的軟件包的第一半,看看是否有幫助... https://stackoverflow.com/a/44972255/2836621 –

+0

@MarkSetchell其中一些不是可用於raspi,但仍然是同樣的錯誤.. – ssovukluk

回答

0

我想通了這個問題。 OpenCV與USB攝像頭在樹莓派上工作得很好。但是當它使用raspverry pi相機時,它不被支持。這就是爲什麼一些開發人員創建了RaspiCam庫,它們一起使用OpenCV。他們甚至提供cmake配置。我安裝了它並捕獲25fps左右的視頻效果很好。該解決方案適用於C++用戶。如果你用python編碼,只需搜索python raspberry pi camera OpenCV。

+0

這怎麼可能是正確的?您使用'raspivid'錄製了一個h264視頻文件,並且必須正常工作,因爲我一直都在這樣做。然後你問OpenCV播放視頻文件(不是USB連接的攝像機,而不是Raspberry Pi CSI連接的攝像機),它可以播放視頻文件,這與文件的來源以及攝像機的連接方式無關在那時候。我不知道我明白你在說什麼...... –

+0

你是對的,你在說什麼。我只能說,OpenCV庫不適合我。這些人爲這個問題創建了一個解決方案https://www.uco.es/investiga/grupos/ava/node/40。但你是正確的,不應該有錄製視頻文件的任何問題。但是我每次嘗試都會遇到同樣的錯誤。 – ssovukluk