前言
由于ubuntu系統(tǒng)近日被不小心整崩潰了,所以早期安裝的一些東西又要重新安裝,閑來無事,為提高重裝人的效率,將一些東西寫成博客。
一、opencv是個什么東西
開源計算機視覺(OpenCV)是一個主要針對實時計算機視覺的編程函數庫。
OpenCV的應用領域包括:2D和3D功能工具包、運動估計、面部識別系統(tǒng)、手勢識別、人機交互、移動機器人、動作理解、物體識別、分割和識別、實體影像立體視覺:來自兩個攝像機的深度感知、運動跟蹤、增強現(xiàn)實等。
二、opencv的安裝
1、資源準備及前期準備
由于官網下載太慢,因此找來一個國內的靠譜網站使用。
國內快速下載地址:https://www.raoyunsoft.com/wordpress/index.php/2020/03/09/opencvdownload/
這里選擇3.4.11版本
默認下載到下載里
右鍵提取到此處即可,或者終端輸入指令:
unzip opencv-3.4.11.zip
2、安裝編譯
進入解壓后的文件夾:opencv-3.4.11
cd opencv-3.4.11
進入 root 并更新
sudo su
sudo apt-get update
接著下面這條命令安裝 cmake
sudo apt-get install cmake
復制下面這條命令,安裝依賴庫
sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg.dev libtiff5.dev libswscale-dev
創(chuàng)建 build 文件夾并進入,使用 cmake 編譯參數
cmake ..
用make創(chuàng)建編譯
sudo make
想更快編譯完,可以使用命令:sudo make -j4 的4線程進行編譯。
安裝
sudo make install
基本不會報錯
3、配置更改
修改 opencv.conf 文件,在此空文件中添加 opencv 庫的安裝路徑:/usr/local/lib
sudo gedit /etc/ld.so.conf.d/opencv.conf
保存后命令出現(xiàn)警告信息,不用擔心,正常情況,但一定要關閉文檔,不然只會出現(xiàn)兩行警告,且無法繼續(xù)執(zhí)行命令
更新系統(tǒng)共享鏈接庫
sudo ldconfig
配置 bash ,修改 bash.bashrc 文件
sudo gedit /etc/bash.bashrc
在文件末尾加入:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
保存退出,然后執(zhí)行如下命令使得配置生效
source /etc/bash.bashrc
更新一下
sudo updatedb
4、驗證版本
接下來查看 opencv 的版本信息
pkg-config --modversion opencv
成功。
三、opencv應用
1、打開圖片進行特效顯示
進入OpenCV文件夾,創(chuàng)建一個工作目錄,再創(chuàng)建第一個OpenCV程序
mkdir mytest
gedit test1.cpp
#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
CvPoint center;
double scale = -3;
IplImage* image = cvLoadImage("WWW.jpg");
argc == 2? cvLoadImage(argv[1]) : 0;
cvShowImage("Image", image);
if (!image) return -1; center = cvPoint(image->width / 2, image->height / 2);
for (int i = 0;i<image->height;i++)
for (int j = 0;j<image->width;j++) {
double dx = (double)(j - center.x) / center.x;
double dy = (double)(i - center.y) / center.y;
double weight = exp((dx*dx + dy*dy)*scale);
uchar* ptr = &CV_IMAGE_ELEM(image, uchar, i, j * 3);
ptr[0] = cvRound(ptr[0] * weight);
ptr[1] = cvRound(ptr[1] * weight);
ptr[2] = cvRound(ptr[2] * weight);
}
Mat src;Mat dst;
src = cvarrToMat(image);
cv::imwrite("test.png", src);
cvNamedWindow("test",1); imshow("test", src);
cvWaitKey();
return 0;
}
把需要打開和處理的圖片放在test1.cpp同一個目錄下編譯程序
g++ test1.cpp -o test1 `pkg-config --cflags --libs opencv`
2、使用opencv庫打開攝像頭
新建test2.cpp
gedit test2.cpp
#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
//從攝像頭讀取視頻
VideoCapture capture(0);
//循環(huán)顯示每一幀
while (1)
{
Mat frame;//定義一個Mat變量,用于存儲每一幀的圖像
capture >> frame;//讀取當前幀
imshow("讀取視頻幀", frame);//顯示當前幀
if(waitKey(30)==27) //按esc鍵退出,
{
break;
}
}
system("pause");
return 0;
}
編譯運行
g++ test2.cpp -o test2 `pkg-config --cflags --libs opencv`
./test2
3、修改上一個程序打開視頻文件來播放
把capture() 中的0換成視頻文件的地址
#include<opencv2/opencv.hpp>
using namespace cv;
int main()
{
//從攝像頭讀取視頻
VideoCapture capture("/home/wei/視頻/1.mp4");
//循環(huán)顯示每一幀
while (1)
{
Mat frame;//定義一個Mat變量,用于存儲每一幀的圖像
capture >> frame;//讀取當前幀
imshow("讀取視頻幀", frame);//顯示當前幀
waitKey(30);//延時30ms
}
system("pause");
return 0;
}
編譯運行
g++ test3.cpp -o test3 `pkg-config --cflags --libs opencv`
./test3
四、容易碰到的問題
現(xiàn)在還有人不知道怎么下載網頁視頻嗎?
點擊到視頻主頁,右上角第三個選擇更多工具—Web開發(fā)者工具
選網絡–媒體
選擇彈出來的mp4雙擊右鍵下載即可文章來源:http://www.zghlxwxcb.cn/news/detail-779623.html
五、參考文獻
https://blog.csdn.net/clyrjj/article/details/109367729?spm=1001.2014.3001.5506
https://blog.csdn.net/bookzhan/article/details/104753855/文章來源地址http://www.zghlxwxcb.cn/news/detail-779623.html
到了這里,關于Ubuntu系統(tǒng)安裝opencv詳細操作及具體應用的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!