先是安装OpenCV,连安卓都有安装包,Linux下居然没有现成的安装包,只能源码编译,跟人沾边的事是一点不干
参考:ubuntu 20.04下编译供C++/python使用的opencv,得折腾近一个小时
然后还得在它的目录下编译,本来就够乱的了还要塞一堆工程文件进去
测试代码
#include <stdio.h>
#include <opencv2/opencv.hpp>
#include "DVPCamera.h"
using namespace cv;
int main(int argc, char **argv) {
dvpUint32 i=0,count=0;//相机数量
dvpCameraInfo info[8];//相机信息
dvpStatus status;//相机状态
dvpHandle h;//相机句柄
dvpFrame frame;//帧数据
void *p;//?
cv::Mat img;//OpenCV图像
/*刷新枚举相机*/
dvpRefresh(&count);
if (count > 8)count = 8;
for (i = 0; i < count; i++)
{
if(dvpEnum(i, &info[i]) == DVP_STATUS_OK)
{
printf("已连接相机: %s\r\n", info[i].FriendlyName);
}
}
/*相机初始化*/
status = dvpOpen(0, OPEN_NORMAL, &h);//以索引号打开相机
dvpSetTriggerState(h, false);//设置为连续出图模式
status = dvpStart(h);//启动视频流
cv::namedWindow("Camera",0);//可以拖动窗口大小
cv::resizeWindow("Camera", 640, 512);//设置窗口大小
cv::moveWindow("Camera",1200,500);//设置窗口位置
while(1)
{
dvpGetFrame(h, &frame, &p, 1000);//采集一帧图像
/*转换为OpenCV格式并显示*/
img = cv::Mat(frame.iHeight, frame.iWidth, CV_8UC1, (uchar*)p);
cv::imshow("Camera",img);//显示图像到窗口
cv::waitKey(1);
}
}
编译命令也要加上相机和OpenCV的库
g++ main.cpp -o Demo -L . libdvp.so libhzd.so -lpthread -Wl,-rpath=. `pkg-config opencv4 --cflags --libs`
编译后运行