建设网站考虑因素广州搬家公司

web/2025/10/6 3:07:17/文章来源:
建设网站考虑因素,广州搬家公司,百度做的网站 后台管理怎么进入,wordpress 扫码阅读一.先讲讲opencv和ffmpeg之间的关系 1.1它们之间的联系 我们知道opencv主要是用来做图像处理的#xff0c;但也包含视频解码的功能#xff0c;而在视频解码部分的功能opencv是使用了ffmpeg。所以它们都是可以处理图像和视频的编解码#xff0c;我个人感觉两个的侧重点不一…一.先讲讲opencv和ffmpeg之间的关系 1.1它们之间的联系 我们知道opencv主要是用来做图像处理的但也包含视频解码的功能而在视频解码部分的功能opencv是使用了ffmpeg。所以它们都是可以处理图像和视频的编解码我个人感觉两个的侧重点不一样。 1.2它们之间的区别 这就要提上面我所说的它们的侧重点是不一样。 OpenCV专注处理图像以及图像相关的处理应用不严谨地可以认为是PhotoShop。Opencv主要做一些识别 跟踪机器视觉应用。 FFmpeg专注处理视频、音频的编解码、转换等不严谨地可以认为是格式工厂和PotPlayer的结合体。主要应用是编解码各种格式转换。 二.opencv和ffmpeg版本匹配 在搭建环境之前我着重强调下两者版本匹配的问题因为在我本人搭建环境的时候由于版本不匹配问题踩了太多的坑怕了。所以一开始把这些干扰因素处理好后面可以省很多事。 2.1如果版本不匹配可能会出哪些问题呢 会在编译opencv的时候出现各种识别不到某些定义的错误导致编译不过。 具体有 2.1.1问题一 error: ‘CODEC_ID_H264’ was not declared in this scope { CODEC_ID_H264, MKTAG(H, 2, 6, 4) } 网友给的就解决方法是编译的时候不开启ffmpeg的编译 -D WITH_FFMPEGOFF 我试过可以编译通过但同时也如同自断一臂给使用ffmpeg功能视频处理类带来巨大麻烦或者干脆是用不了。因此我认为最好的办法还是版本匹配完美编译完美使用这才用的安心根本之道。 2.1.2问题二 error: CODEC_FLAG_GLOBAL_HEADER was not declared in this scope 这种解决办法是补充添加未定义的宏这个如果你了解不深刻里面的原理机制一般人想不到也只有是大佬才能理解并找到的方法。 总之基本上出问题的都是ffmpeg和opencv版本匹配问题为啥我们不一开始就做好呢是吧。 2.2如何知道ffmpeg和opencv的匹配的版本 为了解决这个问题本人也是走了一大圈才整清楚可能最终说起来也就几句话的事但过程是非常曲折的不过正是经历了这种过程才更加深刻吧也同时也锻炼了下自己的耐心加强了一点专研的精神也不错哈下面进入主题 根据网友提供的方法进入opencv源码目录 按理说这里面应该会有一个叫ffmpeg_version.cmake的文件里面会列出opencv相对应的ffmpeg版本号类似下图 那些带数字的就是某个版本的ffmpeg下各个组件对应的版本我们到ffmpeg官网去FFmpeg下载对应的版本源码即可。 上图只是为了说明问题并没有去专门匹配版本号哈。 现在问题是我的文件下没有ffmpeg_version.cmake啊当时也是一脸懵。没办法我就打开ffmpeg.cmake看看是否能发现什么线索。 看到里面的内容有几条线索图片上已经标注出来了这里总结下 1.可以看到opencv需要的ffmpeg版本号对应的tag标签以及commit id号 2.ffmpeg.cmake其实是从上述网址***raw.git***上下载下来的 为什么我的电脑上没有下载下来一波查询发现是访问不了该网址网友也支招在host文件加入ip什么的。我的办法是用github.com替代其实是一样的。 进入另外的链接 GitHub - opencv/opencv_3rdparty: OpenCV - 3rdparty 点击进去 你会发现opencv的commit id也匹配上了。 这样就找到了。关于版本匹配就讲这么多当了解了整个过程是不是简单许多了但如果不是自己一步一步摸索出来的你是体会不到那种遇到问题的焦躁以及解决完问题豁然开朗的感觉。 接下来就是分别下载ffmpeg和opencv的源码了ffmpeg官网链接上面提供了Releases - OpenCV是opencv的源码下载链接自己选好版本切记它们之间的版本匹配要不我上面唠叨那么多是为了啥然后编译安装咱们继续往下走。 三.ffmpeg的安装流程 安装流程 这里建议先安装ffpmeg再安装opencv因为安装opencv会用到ffmpeg。 先解压ffmpeg源码然后进入到源码目录输入如下指令 这里说下输入指令前先对支持库的安装 sudo apt-get install -y autoconf automake build-essential git libass-dev libfreetype6-dev libsdl2-dev libtheora-dev libtool libva-dev libvdpau-dev libvorbis-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-dev 再是参数配置指令输入 ./configure --disable-x86asm --enable-shared --prefix/usr/local/ffmpeg 参数含义是把ffmpeg安装到/usr/local/ffmpeg目录下完了之后再输入 make 中间编译的时间会有点长依电脑的性能而定 sudo make install 所有走完之后会在/usr/local目录下看到ffmpeg文件夹如下 ffmpeg的工具和动态库都在里面了为了编译时能找到ffmpeg的动态库还要做如下处理 创建文件ffmpeg.conf sudo vi /etc/ld.so.conf.d/ffmpeg.conf 输入如下内容(ffmpeg动态库的路径) /usr/local/ffmpeg/lib 最后使能生效 sudo ldconfig 看到下面内容说明安装成功 可以测试使用ffplayg工具播放一段视频 /usr/local/ffmpeg/bin/ffplay **/**/***.mp4 (视频文件目录) 当然我们可以将ffmpeg的bin添加到全局变量这样可以随时调用不用加上绝对地址编辑 profile 文件(sudo vi /etc/profile)在文件末尾添加 export FFMPEG_HOME/usr/local/ffmpeg export PATH$FFMPEG_HOME/bin:$PATHffmpeg的安装到此结束接下来是opencv的安装继续往下走 四.opencv的安装流程 安装流程 同样将opencv的压缩包解压进入源码目录创建一个pc_build如果以后要使用交叉编译就换一个arm_build,扯远了文件夹 这里我是使用cmake图形化编译的先安装一个cmake工具 sudo apt-get install cmake cmake-qt-gui cmake-curses-gui 然后在pc_build目录下执行 cmake-gui 出现界面 这里仅演示ubuntu环境不说交叉编译的 点击finish然后再点击configure配置一些参数如下图 出现下图框出的版本信息说明识别到了ffmpeg如果没识别到怎么办呢留个悬念后面讲。 最后点击generate。 小提示 cmake过程中如果遇到卡住的情况缺少文件需要下载却一直下载不下来的情况 如opencv源码安装文件下载问题ippicv_2017u3_lnx, face_landmark_model.dat, tiny-dnn 配置打开${opencv_folder}/3rdparty/ippicv/ippicv.cmake 第47行 https://raw.githubusercontent.com/opencv/opencv_3rdparty/${IPPICV_COMMIT}/ippicv/ 改成file://${path}比如我的就是file:///home/downloads/ 下载地址https://github.com/opencv/opencv_3rdparty/tree/ippicv/ 按照自己缺少的版本下载下载慢的话可以把链接拷贝到迅雷里面下载。 开始编译 回到命令界面先不要急着输入 make。首先在源码目录 3rdparty/protobuf/src/google/protobuf/stubs/common.cc 这个文件下第 33 行添加#define HAVE_PTHREAD 宏定义才可以编译的过。具体原因是 HAVE_PTHREAD 宏定义了 pthread 库。 cd .. // 返回 opencv 源码顶层目录 vi 3rdparty/protobuf/src/google/protobuf/stubs/common.cc 再进入pc_build目录输入指令 make -j 16 漫长的等待编译编译完之后安装 sudo make install 所有成功之后会在/usr/local目录下生成相应的文件 里面包含头文件和动态库 同样为了找到opencv的动态库做如下处理 创建文件opencv.conf sudo vi /etc/ld.so.conf.d/opencv.conf 输入如下内容(ffmpeg动态库的路径) /usr/local/lib 最后使能生效 sudo ldconfig 到此opencv编译安装完成 前面挖的坑 前面提到一个坑是在cmake的时候没有出现ffmpeg的版本怎么办我的做法是先编译不管编译通过之后将ffmpeg的pkgconfig里面的所有pc文件复到/usr/local/lib/pkgconfig里面这文件里面是opencv的pc文件。 sudo cp /usr/local/ffmpeg/lib/pkgconfig/*.pc /usr/local/lib/pkgconfig 然后按上面的操作在重新编译一次opencv是不是有点崩溃没办法。 当然我也想了一些操作有网友说安装完ffmpeg后做如下操作再去编译opencv sudo vi /etc/profile 添加 export PKG_CONFIG_PATH$PKG_CONFIG_PATH:/usr/local/ffmpeg/lib/pkgconfig 让环境变量生效 source /etc/profile 我这么处理了貌似没用也不知道怎么回事有知道的网友还请麻烦留言告知下。 到这里ffmpeg和opencv都安装好了是不是按捺不住内心的激动跃跃欲试。接下来走几个小栗子磨磨刀哈哈哈。 五.实践操作 是骡子是马拉出来溜溜前面做了这么多就是为了学习和实践操作接下来就写几个小程序跑一跑功能。 5.1显示一张图片 #include opencv2/objdetect.hpp #include opencv2/highgui.hpp #include opencv2/imgproc.hpp #include opencv2/opencv.hpp #include opencv2/core/core.hpp #include iostreamusing namespace std; using namespace cv;int main(int argc,char** argv) {Mat image imread(11.png, 1 );//加载cv::namedWindow(picture,CV_WINDOW_AUTOSIZE);cv::imshow(picture, image);//显示图片waitKey(5000);//等待return 0; } 5.2播放一段视频 #includeopencv2/opencv.hpp using namespace cv;int main() {//从摄像头读取视频VideoCapture capture(video.mp4);//循环显示每一帧while (1){Mat frame;//定义一个Mat变量用于存储每一帧的图像capture frame;//读取当前帧imshow(读取视频帧, frame);//显示当前帧waitKey(30);//延时30ms}system(pause);return 0; } 5.3使用笔记本内置的摄像头拍摄一段视频并保存 #include opencv2/objdetect.hpp #include opencv2/highgui.hpp #include opencv2/imgproc.hpp #include opencv2/opencv.hpp #include opencv2/core/core.hpp #include iostreamusing namespace std; using namespace cv;int main(int argc,char** argv) { //打开电脑摄像头VideoCapture capture(0);if(!capture.isOpened()){couterrorendl;waitKey(0);return 0;}//获得分辨率int w static_castint(capture.get(CV_CAP_PROP_FRAME_WIDTH));int h static_castint(capture.get(CV_CAP_PROP_FRAME_HEIGHT));coutwwendl;couthhendl;Size videoSize(w,h);VideoWriter writer;writer.open(video.mp4,CV_FOURCC(M,J,P,G),25,videoSize);if(!writer.isOpened()){coutfailendl;return -1;}Mat frame;int key;char startorstop1;char flag0;while(1){capture frame;if(key 32){//按下空格开始录制、暂停录制 可以来回切换startorstop 1-startorstop;if(startorstop 0){flag 1;}}if(key 27){//按下ESC退出整个程序保存视频文件到磁盘cout exit endl;break;}if(startorstop 0 flag 1){writer frame;cout recording endl;}else if(startorstop 1){flag 0;cout end recording endl;}imshow(picture,frame);keywaitKey(100);coutkeykeyendl;}capture.release();writer.release();destroyAllWindows();return 0; }编译脚本 g test.cpp -o test -L/usr/local/lib -lopencv_core -lopencv_highgui -lopencv_imgproc -lopencv_videoio -lopencv_imgcodecs好了到这里就告一段落了一路走下来感觉要踩的坑我绝大部分都踩了一遍不容易啊所以后面的路尽情发挥你的创造力吧 如存在有误之处还请广大网友指正

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/87707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哪家公司网站做得好牌子网

背景 记录一次运维经历!!!! tomcat部署完 查看日志打印一切正常 阿里云服务器控制台安全组也放行的对应端口,但从浏览器始终访问不上 telnet 也访问不到端口 在服务器上 访问127.0.0.1可以访问到对应页面 但是用公网ip…

公司做网站注意事项承揽合同和建设工程合同的区别

项目设计 名称:KOB 项目包含的模块 PK模块:匹配界面(微服务)、实况直播界面(WebSocket协议) 对局列表模块:对局列表界面、对局录像界面 排行榜模块:Bot排行榜界面 用户中心模块&…

电脑路由器做网站服务器吗seo结算系统

开局两张图 瘦身前瘦身后 目录 开局两张图前言下载 BFG克隆代码Git 仓库瘦身清理存储库储存库 GC推送仓库 Git 瘦身验证结语开源项目 前言 在进行项目开发的过程中,代码仓库的体积可能会逐渐增大,特别是在版本控制系统中保留了大量的历史提交记录和不必…

网站广告位制作网站cms

JAVA 环境变量配置 1. 安装JDK 2.配置系统变量 新建          JAVA_HOME:D:\Program Files\Java\jdk1.8.0_65 Path添加       %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 新建CLASSPATH  .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 3.完成…

惠州做棋牌网站建设哪家服务好网站空间域名能不能自己续费

雷锋网3月24日报道,今日(3月24日),第16届博鳌亚洲论坛2017年年会在海南继续进行中。据雷锋网了解,在今日下午的数字货币与区块链分论坛上,中国银行前行长、中国互联网金融协会区块链工作组组长李礼辉讲述了…

中国移动社区app下载seo内部优化方案

I/O JavaIO流了解吗? IO 即 Input/Output,输入和输出。数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。数据传输过程类似于水流,因…

网站开发公司管理模式响应式企业网站制作公司

助教老师好,我是计科三班钟国晨,我对我们专业并不是很了解,至少从目前来看是这样,不过虽然感觉我们专业内容比较复杂,我还是对我们所学的知识挺感兴趣的,我性格比较开朗,希望以后能和老师您多多…

浙江建筑网站网站开发背景图模板

1. 当vector的内存用完了,它是如何动态扩展内存的?它是怎么释放内存的?用clear可以释放掉内存吗?是不是线程安全的? (1). vector内存用完了,会以当前size大小重新申请2*size的内存,然后把原来…

江门网站seo关键词排名优化wordpress 提速 插件

现在是早上6点。 我清醒地总结了导致我太早醒来的电话的事件序列。 这些故事开始时,我的电话警报响了。 困倦而脾气暴躁的我检查了电话,看我是否真的疯了以至于无法在凌晨5点设置唤醒警报。 不,这是我们的监视系统,表明Plumbr服务…

网站建设过时了吗qq推广引流怎么做

目录 1 创建购物车2 增加数量3 减少数量4 切换分类时回填数据5 显示购物车信息总结 我们上一篇搭建了点餐业务的数据初始化加载,本篇实现一下加入购物车的功能。在购物车设计的时候有两种方案,一种是使用数据表的方案,一种是使用变量的方案。…

我想建个网站网站怎么建域名30秒牢记5个域名

dos命令登入远程服务器 内容精选换一换远程桌面链接Windows云服务器报错:连接被拒绝,因为没有授权此用户账户进行远程登录。Windows远程桌面相关权限配置异常。在运行窗口输入secpol.msc,打开组策略编辑器打开"本地策略 > 用户权限分…

网站联系方式要素互动网站建设

近年来,随着电子产品的飞速发展,对电流检测精度和可靠性的要求也越来越高。特别是在电脑电源、开关电源以及多口快充充电器、户外移动电源、适配器、电池充电器等领域,对电流检测技术的需求更是日益增长。 电流检测芯片是一种关键的电子元器…

写网站策划书需要注意什么关于小城镇建设的网站

TA-Lib学习研究笔记(九)——Pattern Recognition (6) 最全面的形态识别的函数的应用,通过使用A股实际的数据,验证形态识别函数,用K线显示出现标志的形态走势,由于入口参数基本上是o…

网站开发文件夹wordpress 淘宝客 主题

[PConline]8月8日,根据微信官方发布的消息显示,小程序新增后台定位功能,并对自动化测试功能进行了升级。据介绍,为了满足线路导航、路线记录等服务场景下,小程序需要长时间持续定位来提供服务。当用户主动将小程序设置…

深圳专业网站建设作品集怎么做网页

文章目录 前言一、什么是业务子领域?二、子领域的类型有哪些?2.1、核心子领域2.2、通用子领域2.3、支撑子领域 三、子领域差异对比3.1、竞争优势比较3.2、复杂性比较3.3、易变性比较3.4、实时策略比较 总结 前言 一个业务领域是一个公司的主要活动领域的…

公司网站的设计方案辽宁城乡建设工程招标网

今天碰到一个客户反馈,他在hostease购买了虚拟主机,创建的WordPress站点图片比较多,后来访问网站,页面上大量的图片加载时间较长,咨询网站图像如何压缩。我们为用户提供网站图像压缩,用户很快完成了设置。在…

杭州有做网站如何做网站开屏

在 如何在工作组环境win 7远程管理Hyper-v server R2 SP1配置(二) 文中末尾,出现下图报错: 一般情况下,按上篇提到的hvremote.wsf 脚本配置说明文件HVRemote Documentation操作后,不会出现此报错&#xff0…

网站后台安装上海消费品网络营销推广公司

达梦数据库用户与权限管理 用户管理口令策略管理用户资源限制 权限管理一般权限特殊权限 角色管理 用户管理 达梦数据库安装后创建的内置用户: SYS:内置用户,不允许登录。该用户下有常用的数据字典;SYSDBA:系统管理员…

四川做网站的公司有哪些沧州新华区

成功的ERP需要全程的流程变革流程变革最佳实践5步走流程变革的最佳实践,是将一个颇具风险的流程重组过程分解为几个分步实现的步骤,并与ERP的实施同步开展,再经过几轮优化改进的循环,达到变革的目标——提高流程的效益和效率。伴随…

肇庆网站建设公司哪个好云南电商网站开发

无论在什么业务中,钱?是非常重要的东西,对账的时候一定要对的上,不能这边少一分钱那边多一分钱。对于数值的计算,尤其是小数,floate和double都是禁止使用的。阿里强制要求存放小数时使用 decimal,禁止使用…