首先,广为流传的代码,及其使用方式是正确的,摘录如下:
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <stdio.h>
using namespace cv;
using namespace std;
int main()
{
VideoCapture cap("nvcamerasrc ! video/x-raw(memory:NVMM), width=(int)640, height=(int)360,format=(string)I420, framerate=(fraction)1/1 ! nvvidconv flip-method=2 ! video/x-raw, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink");
if (!cap.isOpened())
{
cout << "Failed to open camera." << endl;
return -1;
}
for(;;)
{
Mat frame;
cap >> frame;
imshow("original", frame);
waitKey(10);
}
return 0;
}
其次,在Jeston Tx2刷机的过程中,已经默认安装了opencv,但是这个版本的opencv不支持GStreamer,因此是不能打开摄像头的,运行结果是不能打开摄像头,
再次,应该安装更高版本的opencv,我这里直接安装最新版本的。
最后,如果想使用QT5来调用的话,一定要设置好库的安装路径,并在pro文件里进行设置。
INCLUDEPATH += /usr/local/include/opencv4
LIBS += /usr/local/lib/libopencv_highgui.so \
/usr/local/lib/libopencv_core.so \
/usr/local/lib/libopencv_imgproc.so \
/usr/local/lib/libopencv_imgcodecs.so\
/usr/local/lib/libopencv_videoio.so\
注意库头文件的位置和动态链接库的位置。