国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

順德營銷型網(wǎng)站建設(shè)查關(guān)鍵詞的排名工具

順德營銷型網(wǎng)站建設(shè),查關(guān)鍵詞的排名工具,中山 網(wǎng)站設(shè)計(jì),建設(shè)行業(yè)最近要完成一個(gè)功能,就是把四個(gè)視頻合成左右上下分布的一個(gè)視頻。嘗試很多方法,最終使用opencv來實(shí)現(xiàn)該功能。(通過opencv實(shí)現(xiàn)的視頻好像沒有聲音。)研究的步驟,首先在Ubuntu環(huán)境測試,該功能是否實(shí)現(xiàn)。然后再將生成的庫文件放到AS中,使用jni的方法調(diào)用,或者將源碼放到A…

最近要完成一個(gè)功能,就是把四個(gè)視頻合成左右上下分布的一個(gè)視頻。嘗試很多方法,最終使用opencv來實(shí)現(xiàn)該功能。(通過opencv實(shí)現(xiàn)的視頻好像沒有聲音。)研究的步驟,首先在Ubuntu環(huán)境測試,該功能是否實(shí)現(xiàn)。然后再將生成的庫文件放到AS中,使用jni的方法調(diào)用,或者將源碼放到AS中利用jni技術(shù)。在實(shí)現(xiàn)過程中遇到很多問題,下面記錄。
一、在ubuntu linux環(huán)境使用opencv。
1、下載opencv安裝包。
下載地址:官網(wǎng):https://opencv.org/releases/

在這里插入圖片描述

git地址:https://github.com/opencv/opencv/releases
在這里插入圖片描述
2、將下載的安裝包放到虛擬機(jī)根目錄(新建software目錄)。
在這里插入圖片描述

3、安裝包解壓縮。

  unzip opencv-4.8.0.zip 

4、下載相關(guān)軟件。
進(jìn)入 opencv-4.8.0 文件夾。
1)更新軟件

sudo apt-get update

在這里插入圖片描述
2)安裝cmake

sudo apt-get install cmake

在這里插入圖片描述
3) 安裝依賴庫

sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev libjasper-dev

在這里插入圖片描述
4)在 opencv-4.8.0 文件夾下新建build文件夾。

 mkdir build

在這里插入圖片描述

5)進(jìn)入build文件夾,使用命令修改參數(shù)

 sudo cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..

在這里插入圖片描述

6)使用make編譯

sudo make

在這里插入圖片描述
在這里插入圖片描述

7)安裝

sudo make install

在這里插入圖片描述
8)配置環(huán)境

sudo gedit /etc/ld.so.conf.d/opencv.conf 

在新建的文檔中添加:

/usr/local/lib
sudo ldconfig

配置路徑生效。
在這里插入圖片描述
在這里插入圖片描述
9)配置bash

sudo gedit /etc/bash.bashrc 

在最末尾添加

PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  
export PKG_CONFIG_PATH 

執(zhí)行該步驟時(shí),發(fā)現(xiàn)/usr/local/lib/路徑下沒有pkgconfig文件夾。并且執(zhí)行命令

pkg-config --cflags openc

報(bào)一下錯(cuò)誤。
在這里插入圖片描述
解決:首先創(chuàng)建opencv.pc文件,這里要注意它的路徑信息:

cd /usr/local/lib
sudo mkdir pkgconfig
cd pkgconfig
sudo touch opencv.pc

然后在opencv.pc中添加以下信息,注意這些信息需要與自己安裝opencv時(shí)的庫路徑對應(yīng):(一下是我自己的內(nèi)容)


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}

保存退出,添加環(huán)境:

export  PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

執(zhí)行.cpp編譯命令:

 g++ videotest.cpp -o videotest `pkg-config --cflags --libs opencv`

報(bào)錯(cuò):
在這里插入圖片描述
再執(zhí)行編譯命令:

g++ videotest.cpp -o videotest `pkg-config --cflags --libs opencv` -std=gnu++11

報(bào)錯(cuò):
在這里插入圖片描述
查看/usr/local/lib/lib文件下沒有l(wèi)ibopencv_shape.so等這三個(gè)庫,再次打開/usr/local/lib/pkgconfig/opencv.pc文件,將-lopencv_shape 等三個(gè)路徑刪除掉。保存退出。執(zhí)行命令:

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源碼編譯的對應(yīng)so庫文件只是linux系統(tǒng)平臺(tái)文件(我的是x86_64),如果想將該庫編譯為其他平臺(tái),例如arm64需要交叉編譯。(我沒整明白)
注意:2、上述配置bash后,使用以下命令使得配置文件生效。若沒有生效,重啟電腦試試。(如果沒有生效,執(zhí)行 編譯生成的可執(zhí)行文件,報(bào)錯(cuò) 找不到opencv庫)

source /etc/bash.bashrc  
sudo updatedb

注意:3 我這里編譯的是opencv4.8.0版本,編譯過程中使用python3.x版本,opencv.pc需要自己創(chuàng)建。鏈接http://www.taodudu.cc/news/show-3639538.html?action=onClick#google_vignette 編譯的opencv3.4.1版本,使用python2.x版本,opencv.pc自動(dòng)生成。按照鏈接中配置,就可以成功編譯安裝opencv。

最后是測試代碼,功能將代碼中的video.mp4合成上下左右分布的一個(gè)視頻。生成視頻為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 <string>using 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";//視頻的路徑/** 打開第一個(gè)視頻文件 */VideoCapture cap; //視頻句柄變量cap.open(videoFile);//打開視頻if(!cap.isOpened())  //判斷是否打開了{  printf("1cap.isOpened is error\n");return -1;  } /** 打開第二個(gè)視頻文件 */VideoCapture cap1; //視頻句柄變量cap1.open(videoFile1);//打開視頻if(!cap1.isOpened())  //判斷是否打開了{  printf("2cap.isOpened is error\n");return -1;  } /** 打開第三個(gè)視頻文件 */VideoCapture cap2; //視頻句柄變量cap2.open(videoFile2);//打開視頻if(!cap2.isOpened())  //判斷是否打開了{  printf("3cap.isOpened is error\n");return -1;  } /** 打開第四個(gè)視頻文件 */VideoCapture cap3; //視頻句柄變量cap3.open(videoFile3);//打開視頻if(!cap3.isOpened())  //判斷是否打開了{  printf("4cap.isOpened is error\n");return -1;  } /** 打開第一個(gè)視頻文件的幀數(shù) */int frame_num = cap.get(cv::CAP_PROP_FRAME_COUNT);std::cout << "videoFile total frame number is: " << frame_num << std::endl;/** 打開第二個(gè)視頻文件的幀數(shù) */int frame_num1 = cap1.get(cv::CAP_PROP_FRAME_COUNT);std::cout << "videoFile1 total frame number is: " << frame_num1 << std::endl;/** 打開第三個(gè)視頻文件的幀數(shù) */int frame_num2 = cap2.get(cv::CAP_PROP_FRAME_COUNT);std::cout << "videoFile2 total frame number is: " << frame_num2 << std::endl;/** 打開第四個(gè)視頻文件的幀數(shù) */int frame_num3 = cap3.get(cv::CAP_PROP_FRAME_COUNT);std::cout << "videoFile3 total frame number is: " << frame_num3 << std::endl;/** 打開第一個(gè)視頻文件的幀率 */int fps = cap.get(cv::CAP_PROP_FPS);std::cout << "videoFile fps: " << fps << std::endl;/** 打開第二個(gè)視頻文件的幀率 */int fps1 = cap1.get(cv::CAP_PROP_FPS);std::cout << "videoFile1 fps1: " << fps1 << std::endl;/** 打開第三個(gè)視頻文件的幀率 */int fps2 = cap2.get(cv::CAP_PROP_FPS);std::cout << "videoFile fps2: " << fps2 << std::endl;/** 打開第四個(gè)視頻文件的幀率 */int fps3 = cap3.get(cv::CAP_PROP_FPS);std::cout << "videoFile1 fps3: " << fps3 << std::endl;/** 打開第一個(gè)視頻文件的寬度 */int image_width = cap.get(cv::CAP_PROP_FRAME_WIDTH);std::cout << "videoFile image width is: " << image_width << std::endl;/** 打開第二個(gè)視頻文件的寬度 */int image_width1 = cap1.get(cv::CAP_PROP_FRAME_WIDTH);std::cout << "videoFile1 image width is: " << image_width1 << std::endl;/** 打開第三個(gè)視頻文件的寬度 */int image_width2 = cap2.get(cv::CAP_PROP_FRAME_WIDTH);std::cout << "videoFile2 image width is: " << image_width2 << std::endl;/** 打開第四個(gè)視頻文件的寬度 */int image_width3 = cap3.get(cv::CAP_PROP_FRAME_WIDTH);std::cout << "videoFile3 image width is: " << image_width3 << std::endl;/** 打開第一個(gè)視頻文件的高度 */int image_height = cap.get(cv::CAP_PROP_FRAME_HEIGHT);std::cout << "videoFile image height: " << image_height << std::endl;/** 打開第二個(gè)視頻文件的高度 */int image_height1 = cap1.get(cv::CAP_PROP_FRAME_HEIGHT);std::cout << "videoFile1 image height: " << image_height1 << std::endl;/** 打開第三個(gè)視頻文件的高度 */int image_height2 = cap2.get(cv::CAP_PROP_FRAME_HEIGHT);std::cout << "videoFile2 image height: " << image_height2 << std::endl;/** 打開第四個(gè)視頻文件的高度 */int image_height3 = cap3.get(cv::CAP_PROP_FRAME_HEIGHT);std::cout << "videoFile3 image height: " << image_height3 << std::endl;/** 打開第一個(gè)視頻文件的矩陣對象的格式*/int frame_format = cap.get(cv::CAP_PROP_FORMAT);std::cout << "videoFile frame format: " << frame_format << std::endl;/** 打開第二個(gè)視頻文件的矩陣對象的格式 */int frame_format1 = cap1.get(cv::CAP_PROP_FORMAT);std::cout << "videoFile1 frame format: " &
http://aloenet.com.cn/news/47163.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)方案標(biāo)準(zhǔn)模板seo技術(shù)交流
  • 浙江建設(shè)廳網(wǎng)站官網(wǎng)seo關(guān)鍵詞排名系統(tǒng)
  • 做網(wǎng)站都需要哪些技術(shù)網(wǎng)絡(luò)推廣和seo
  • 電子商務(wù)網(wǎng)站軟件建設(shè)的核心是武漢大學(xué)人民醫(yī)院地址
  • 香港公司網(wǎng)站備案公司建立網(wǎng)站的步驟
  • 做二手房網(wǎng)站有哪些seo營銷是什么
  • 海寧高端高端網(wǎng)站設(shè)計(jì)人工智能培訓(xùn)機(jī)構(gòu)排名
  • 讓人做網(wǎng)站 需要準(zhǔn)備什么軟件深圳英文站seo
  • 網(wǎng)站備案號在哪里查詢美國seo薪酬
  • 網(wǎng)站機(jī)房建設(shè)有助于怎么做盲盒
  • 開封企業(yè)網(wǎng)絡(luò)推廣方案seo和sem的區(qū)別
  • 鐘表玻璃東莞網(wǎng)站建設(shè)寧波seo網(wǎng)絡(luò)推廣軟件系統(tǒng)
  • h5 網(wǎng)站建設(shè)網(wǎng)絡(luò)營銷活動(dòng)方案
  • 深圳網(wǎng)站建設(shè)定制網(wǎng)站seo推廣多少錢
  • 做網(wǎng)站那個(gè)公司網(wǎng)站建設(shè)公司官網(wǎng)
  • 網(wǎng)站建設(shè)進(jìn)展推進(jìn)表旺道seo軟件技術(shù)
  • 網(wǎng)站建設(shè)崗位廉政風(fēng)險(xiǎn)防控互聯(lián)網(wǎng)銷售平臺(tái)有哪些
  • 西安建設(shè)過政府網(wǎng)站的公司國外網(wǎng)站搭建
  • 公司文化墻圖片大全關(guān)鍵詞優(yōu)化排名軟件案例
  • wordpress建購物網(wǎng)站成都網(wǎng)絡(luò)營銷公司哪家好
  • wordpress網(wǎng)站突然打不開阿里云域名注冊官網(wǎng)
  • 做網(wǎng)站騙子成都seo論壇
  • 用jsp怎么做網(wǎng)站關(guān)鍵詞排名推廣軟件
  • 中國做網(wǎng)站瀏覽器打開網(wǎng)站
  • 診斷網(wǎng)站seo現(xiàn)狀的方法廣州市網(wǎng)絡(luò)seo外包
  • 怎么查看網(wǎng)站是否備案網(wǎng)站top排行榜
  • 衢州做網(wǎng)站的公司bt種子搜索
  • 信息網(wǎng)站怎么做網(wǎng)絡(luò)零售的優(yōu)勢有哪些
  • 深圳商城網(wǎng)站建設(shè)google學(xué)術(shù)搜索
  • 介紹自己做的電影網(wǎng)站google推廣專員招聘