当前位置: 首页 > news >正文

简述网站建设的方案广州地铁运营时间

简述网站建设的方案,广州地铁运营时间,企业vi设计公司哪家好,成都知名网站推广最近要完成一个功能,就是把四个视频合成左右上下分布的一个视频。尝试很多方法,最终使用opencv来实现该功能。(通过opencv实现的视频好像没有声音。)研究的步骤,首先在Ubuntu环境测试,该功能是否实现。然后再将生成的库文件放到AS中,使用jni的方法调用,或者将源码放到A…最近要完成一个功能,就是把四个视频合成左右上下分布的一个视频。尝试很多方法,最终使用opencv来实现该功能。(通过opencv实现的视频好像没有声音。)研究的步骤,首先在Ubuntu环境测试,该功能是否实现。然后再将生成的库文件放到AS中,使用jni的方法调用,或者将源码放到AS中利用jni技术。在实现过程中遇到很多问题,下面记录。 一、在ubuntu linux环境使用opencv。 1、下载opencv安装包。 下载地址:官网:https://opencv.org/releases/ git地址:https://github.com/opencv/opencv/releases 2、将下载的安装包放到虚拟机根目录(新建software目录)。 3、安装包解压缩。 unzip opencv-4.8.0.zip 4、下载相关软件。 进入 opencv-4.8.0 文件夹。 1)更新软件 sudo apt-get update2)安装cmake sudo apt-get install cmake3) 安装依赖库 sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev4)在 opencv-4.8.0 文件夹下新建build文件夹。 mkdir build5)进入build文件夹,使用命令修改参数 sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..6)使用make编译 sudo make7)安装 sudo make install8)配置环境 sudo gedit /etc/ld.so.conf.d/opencv.conf 在新建的文档中添加: /usr/local/libsudo ldconfig配置路径生效。 9)配置bash sudo gedit /etc/bash.bashrc 在最末尾添加 PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig export PKG_CONFIG_PATH 执行该步骤时,发现/usr/local/lib/路径下没有pkgconfig文件夹。并且执行命令 pkg-config --cflags openc报一下错误。 解决:首先创建opencv.pc文件,这里要注意它的路径信息: cd /usr/local/lib sudo mkdir pkgconfig cd pkgconfig sudo touch opencv.pc然后在opencv.pc中添加以下信息,注意这些信息需要与自己安装opencv时的库路径对应:(一下是我自己的内容) prefix=/usr/local exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include/opencv4Name: OpenCV Description: Open Source Computer Vision Library Version: 4.8.0 Libs: -L${exec_prefix}/lib -lopencv_highgui -lopencv_shape -lopencv_objdetect -lopencv_ml -lopencv_superres -lopencv_dnn -lopencv_stitching -lopencv_videostab -lopencv_calib3d -lopencv_videoio -lopencv_imgcodecs -lopencv_features2d -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core Libs.private: -ldl -lm -lpthread -lrt Cflags: -I${includedir} 保存退出,添加环境: export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig执行.cpp编译命令: g++ videotest.cpp -o videotest `pkg-config --cflags --libs opencv`报错: 再执行编译命令: g++ videotest.cpp -o videotest `pkg-config --cflags --libs opencv` -std=gnu++11报错: 查看/usr/local/lib/lib文件下没有libopencv_shape.so等这三个库,再次打开/usr/local/lib/pkgconfig/opencv.pc文件,将-lopencv_shape 等三个路径删除掉。保存退出。执行命令: g++ videotest.cpp -o videotest `pkg-config --cflags --libs opencv` -std=gnu++11编译成功。 最后的opencv.pc文件: # Package Information for pkg-configprefix=/usr/local exec_prefix=${prefix} libdir=${exec_prefix}/lib includedir=${prefix}/include/opencv4Name: OpenCV Description: Open Source Computer Vision Library Version: 4.8.0 Libs: -L${exec_prefix}/lib -lopencv_highgui -lopencv_objdetect -lopencv_ml -lopencv_dnn -lopencv_stitching -lopencv_calib3d -lopencv_videoio -lopencv_imgcodecs -lopencv_features2d -lopencv_video -lopencv_photo -lopencv_imgproc -lopencv_flann -lopencv_core Libs.private: -ldl -lm -lpthread -lrt Cflags: -I${includedir}注意:1、该opencv源码编译的对应so库文件只是linux系统平台文件(我的是x86_64),如果想将该库编译为其他平台,例如arm64需要交叉编译。(我没整明白) 注意:2、上述配置bash后,使用以下命令使得配置文件生效。若没有生效,重启电脑试试。(如果没有生效,执行 编译生成的可执行文件,报错 找不到opencv库) source /etc/bash.bashrc sudo updatedb注意:3 我这里编译的是opencv4.8.0版本,编译过程中使用python3.x版本,opencv.pc需要自己创建。链接http://www.taodudu.cc/news/show-3639538.html?action=onClick#google_vignette 编译的opencv3.4.1版本,使用python2.x版本,opencv.pc自动生成。按照链接中配置,就可以成功编译安装opencv。 最后是测试代码,功能将代码中的video.mp4合成上下左右分布的一个视频。生成视频为mergevideo.avi 或mergevideo.mkv #include iostream #include opencv2/opencv.hpp #include unistd.h #include error.h #include errno.h #include fcntl.h #include sys/ioctl.h #include sys/types.h #include pthread.h #include linux/videodev2.h #include sys/mman.h #include opencv2/core/core.hpp #include opencv2/highgui/highgui.hpp #include stdio.h #include stdlib.h #include string.h #include iostream #include iomanip #include stringusing namespace std; using namespace cv; int main(int argc, char ** argv) {std::string videoFile = "video.mp4";//视频的路径std::string videoFile1 = "video.mp4";//视频的路径std::string videoFile2 = "video.mp4";//视频的路径std::string videoFile3 = "video.mp4";//视频的路径/** 打开第一个视频文件 */VideoCapture cap; //视频句柄变量cap.open(videoFile);//打开视频if(!cap.isOpened()) //判断是否打开了{ printf("1cap.isOpened is error\n");return -1; } /** 打开第二个视频文件 */VideoCapture cap1; //视频句柄变量cap1.open(videoFile1);//打开视频if(!cap1.isOpened()) //判断是否打开了{ printf("2cap.isOpened is error\n");return -1; } /** 打开第三个视频文件 */VideoCapture cap2; //视频句柄变量cap2.open(videoFile2);//打开视频if(!cap2.isOpened()) //判断是否打开了{ printf("3cap.isOpened is error\n");return -1; } /** 打开第四个视频文件 */VideoCapture cap3; //视频句柄变量cap3.open(videoFile3);//打开视频if(!cap3.isOpened()) //判断是否打开了{ printf("4cap.isOpened is error\n");return -1; } /** 打开第一个视频文件的帧数 */int frame_num = cap.get(cv::CAP_PROP_FRAME_COUNT);std::cout "videoFile total frame number is: " frame_num std::endl;/** 打开第二个视频文件的帧数 */int frame_num1 = cap1.get(cv::CAP_PROP_FRAME_COUNT);std::cout "videoFile1 total frame number is: " frame_num1 std::endl;/** 打开第三个视频文件的帧数 */int frame_num2 = cap2.get(cv::CAP_PROP_FRAME_COUNT);std::cout "videoFile2 total frame number is: " frame_num2 std::endl;/** 打开第四个视频文件的帧数 */int frame_num3 = cap3.get(cv::CAP_PROP_FRAME_COUNT);std::cout "videoFile3 total frame number is: " frame_num3 std::endl;/** 打开第一个视频文件的帧率 */int fps = cap.get(cv::CAP_PROP_FPS);std::cout "videoFile fps: " fps std::endl;/** 打开第二个视频文件的帧率 */int fps1 = cap1.get(cv::CAP_PROP_FPS);std::cout "videoFile1 fps1: " fps1 std::endl;/** 打开第三个视频文件的帧率 */int fps2 = cap2.get(cv::CAP_PROP_FPS);std::cout "videoFile fps2: " fps2 std::endl;/** 打开第四个视频文件的帧率 */int fps3 = cap3.get(cv::CAP_PROP_FPS);std::cout "videoFile1 fps3: " fps3 std::endl;/** 打开第一个视频文件的宽度 */int image_width = cap.get(cv::CAP_PROP_FRAME_WIDTH);std::cout "videoFile image width is: " image_width std::endl;/** 打开第二个视频文件的宽度 */int image_width1 = cap1.get(cv::CAP_PROP_FRAME_WIDTH);std::cout "videoFile1 image width is: " image_width1 std::endl;/** 打开第三个视频文件的宽度 */int image_width2 = cap2.get(cv::CAP_PROP_FRAME_WIDTH);std::cout "videoFile2 image width is: " image_width2 std::endl;/** 打开第四个视频文件的宽度 */int image_width3 = cap3.get(cv::CAP_PROP_FRAME_WIDTH);std::cout "videoFile3 image width is: " image_width3 std::endl;/** 打开第一个视频文件的高度 */int image_height = cap.get(cv::CAP_PROP_FRAME_HEIGHT);std::cout "videoFile image height: " image_height std::endl;/** 打开第二个视频文件的高度 */int image_height1 = cap1.get(cv::CAP_PROP_FRAME_HEIGHT);std::cout "videoFile1 image height: " image_height1 std::endl;/** 打开第三个视频文件的高度 */int image_height2 = cap2.get(cv::CAP_PROP_FRAME_HEIGHT);std::cout "videoFile2 image height: " image_height2 std::endl;/** 打开第四个视频文件的高度 */int image_height3 = cap3.get(cv::CAP_PROP_FRAME_HEIGHT);std::cout "videoFile3 image height: " image_height3 std::endl;/** 打开第一个视频文件的矩阵对象的格式*/int frame_format = cap.get(cv::CAP_PROP_FORMAT);std::cout "videoFile frame format: " frame_format std::endl;/** 打开第二个视频文件的矩阵对象的格式 */int frame_format1 = cap1.get(cv::CAP_PROP_FORMAT);std::cout "videoFile1 frame format: "
http://www.hkea.cn/news/14508709/

相关文章:

  • 天津做网站的企业各地城乡建设网站更新
  • 推荐 网站空间深圳十大广告公司
  • 网站app 开发网站建设简述
  • 商业网站建立网站后台网址在哪输入
  • 杭州哪家做外贸网站教育行业网站开发
  • 专做动漫解说的网站gate网站合约怎么做空
  • 全国十大装修公司排行榜品牌关键词优化哪家便宜
  • 外贸视频网站怎么做局域网asp网站
  • dedecms网站二次开发网站导航条
  • 永泰县建设局网站近10天的时政新闻
  • 炽乐清网站建设python浪漫星空代码
  • 内销机械做哪个网站好中国最牛的央企排名
  • 做网站的高手网站开发的可行性
  • 如何推进网站建设北京如何优化搜索引擎
  • 如何免费建立可以交流的网站手机网站设计咨询
  • 临沂的各类网站建设做游戏代练去那个网站
  • vc 做网站源码设计师做兼职的网站
  • 上海建设网站哪家好app推广服务部
  • 网站推广应该注意什么网站内容多 询盘
  • 南城网站建设公司策划微信公众号开发创新
  • 网站内部优化工具网络推广策划书
  • 柏林网站建设重庆seo杨洋
  • 关于做网站的毕业设计企云网站建设
  • 南宁市住房建设局网站做快手电商需要什么条件
  • c2c电商网站怎么给餐饮店做网站
  • 瓯海建设网站网站建设流程图viso
  • 淘宝客网站免费建站怎么免费制作一个网站
  • 百度上找不到网站云南省建设工作网站
  • php自己做网站访问量计算软件开发文档的作用
  • 网页设计与网站建设教学视频建网站需要软件