當我使用 GStreamer 打開相機時遇到問題,并且相機未連接,我沒有從 OpenCV 收到錯誤代碼。GStreamer 在控制臺中回傳錯誤。當我檢查相機是否打開時.isOpend(),回傳值為true. 連接相機后,它可以正常作業。
std::string pipeline = "nvarguscamerasrc sensor_id=0 ! video/x-raw(memory:NVMM), width=(int)3264, height=(int)2464, format=(string)NV12, framerate=(fraction)21/1 ! nvvidconv flip-method=2 ! video/x-raw, width=(int)3264, height=(int)2464, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink"
cap_device_.open(pipeline, cv::CAP_GSTREAMER);
bool err = cap_device_.isOpened();
if (!err) {
printf("Not possible to open camera");
return EXIT_FAILURE;
}
控制臺中的 GStreamer 錯誤代碼為:
(Argus) Error Timeout: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 219)
(Argus) Error Timeout: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 106)
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:720 Failed to create CameraProvider
[ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (933) open OpenCV | GStreamer warning: Cannot query video position: status=0, value=-1, duration=-1
如果我理解一切正確,.isOpend()應該回傳false. 如果不是,我如何檢查管道是否初始化正確?
我的系統在帶有 MIPI-CSI 攝像頭的 Nvidia Jetson Nano 上運行 Ubuntu 18.04。GStreamer 1.14.5 版,OpenCV 4.1.1 版
uj5u.com熱心網友回復:
這可能只是因為一個錯字。nvarguscamerasrc 沒有屬性 sensor_id 但有 sensor-id。修復此問題后它應該可以作業。
在不作業的情況下, cap.read() 應該回傳 false。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/409059.html
標籤:
下一篇:I/O完成埠C 和執行緒池
