Qt5.7.0 + OpenCV2.4.9 + ffmpeg在Ubuntu 14.04LTS下的配置

Qt5.7.0 + OpenCV2.4.9 + ffmpeg在Ubuntu 14.04LTS下的配置


分類:
tags: Ubuntu Qt OpenCV

?版權(quán)聲明:本文為博主原創(chuàng)文章饵骨,未經(jīng)博主允許不得轉(zhuǎn)載诫欠。
搬運自本人 CSDN 博客:https://blog.csdn.net/ajianyingxiaoqinghan/article/details/62424132


前言:這是我的第一篇MarkDown文檔季眷,試手 + 記錄用,希望MarkDown能給我?guī)Ыo我很好的記錄習(xí)慣~

一、Qt 5.7.0的安裝

參考鏈接:http://blog.csdn.net/laizhenghong2012/article/details/51758164

1、安裝g++

安裝Qt之前安裝g++,以便在Qt的安裝過程中能夠檢測到系統(tǒng)已經(jīng)安裝了g++符衔。減少后期配置的困難。

sudo apt-get install g++

2糟袁、安裝Qt5.7.0

筆者電腦是64位的判族,所以應(yīng)該下載對應(yīng)的64位版本。安裝軟件是在學(xué)校的IPV6內(nèi)網(wǎng)中下載的项戴,平常狀況下形帮,應(yīng)該在官網(wǎng)下載。
筆者的qt-opensource-linux-x64-5.7.0.run放在/home/grq/src文件夾下周叮,先對文件實行權(quán)限更改:

chmod u+x ./qt-opensource-linux-x64-5.7.0.run

執(zhí)行安裝文件:

./qt-opensource-linux-x64-5.7.0.run

進入安裝界面沃缘,依次登陸,選擇安裝位置(注意:最好選擇具有讀寫權(quán)限的/home目錄下)


image

直到文件最后安裝完成则吟。

3槐臀、配置Qt

安裝完后,還要配置Qt氓仲,否則是不能使用的水慨。
當(dāng)你在命令行下輸入qmake時,會報這樣的錯誤

qmake:could not exec '/usr/lib/x86_64-Linux-gnu/qt4/bin/qmake':NO such file or directory

(32位的ubuntu報的是這樣的錯 qmake:could not exec '/usr/lib/i386-linux-gnu/qt4/bin/qmake':NO such file or directory)
跟隨報錯信息敬扛,進入下面路徑中:

cd /usr/lib/x86_64-linux-gnu/qt-default/qtchooser
image

打開目錄下的default.conf文件:

sudo gedit /usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf

將配置文件中的內(nèi)容改為實際的Qt安裝位置晰洒。例如筆者的default.conf文件如下所示:
<code>
/home/grq/kit/Qt5.7.0/5.7/gcc_64/bin
/home/grq/kit/Qt5.7.0
</code>

4、寫Hello World(參考其他鏈接)

image

運行得到:


image

注:運行時報錯<code>can't find lGl</code>啥箭,請參考:http://blog.csdn.net/wwkaven/article/details/37755259

二谍珊、ffmpeg的配置

參考鏈接:http://blog.csdn.net/micheal_w/article/details/45343873

如果安裝OpenCV時沒有安裝ffmpeg,則在調(diào)用OpenCV視頻處理函數(shù)時急侥,將會導(dǎo)致讀取視頻失敗砌滞。

1、源碼下載

終端輸入如下指令坏怪,獲取ffmpeg源碼贝润。

svn checkout svn://svn.mplayerhq.hu/ffmpeg/trunk ffmpeg

注:獲取源碼后建議備份。

2铝宵、文件配置

進入ffmpeg文件夾中打掘,進行文件配置:

cd ./ffmpeg
./configure --enable-shared --enable-gpl --enable-swscale

如果在<code>configure</code>中遇到提醒华畏,缺少<code>--disable-yasm</code>時,添加該項即可:

./configure --enable-shared --enable-gpl --enable-swscale --disable-yasm

3尊蚁、ffmpeg安裝

make
sudo make install

4亡笑、關(guān)于'cmp'的bug

當(dāng)執(zhí)行<code>make</code>操作時,出現(xiàn)如下bug:
<code>
libavcodec/x86/h264_qpel_mmx.c: Assembler messages:
libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch for cmp' libavcodec/x86/h264_qpel_mmx.c:1294: Error: operand type mismatch forcmp'
libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch for cmp' libavcodec/x86/h264_qpel_mmx.c:1298: Error: operand type mismatch forcmp'
libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for cmp' libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch forcmp'
libavcodec/x86/h264_qpel_mmx.c:964: Error: operand type mismatch for `cmp'
make[5]: *** [libavcodec/x86/dsputil_mmx.o] Error 1
</code>
解決方案:
將目錄下的文件:<code>./ffmpeg/libavcodec/x86/h264_qpel_mmx.c</code>文件中的"g"替換為"rm"横朋。
使用gedit打開文檔:

sudo gedit ./ffmpeg/libavcodec/x86/h264_qpel_mmx.c

然后可以使用gedit中的替換功能仑乌。

三、OpenCV 2.4.9 的安裝

參考鏈接:http://blog.csdn.net/guo8113/article/details/29211041
http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/

1叶撒、安裝build-essential:

sudo apt-get install build-essential

2绝骚、安裝CMake:

sudo apt-get install cmake

3耐版、安裝一些依賴庫與組件:

sudo apt-get install libgtk2.0-dev pkg-config python-dev  python-numpy libavcodec-dev libavformat-dev libswscale-dev libdc1394-22  libjpeg-dev libpng-dev libtiff-dev libjasper-dev

其中祠够,最后四個包是可選的。

4粪牲、獲取OpenCV源碼

可前往官網(wǎng)古瓤,尋找下載OpenCV 2.4.9的Linux版源碼:http://opencv.org/releases.html
下載得到OpenCV2.4.9.zip,解壓到目錄中腺阳。

5落君、安裝OpenCV

此處使用release版本,所以在OpenCV文件夾下建造目錄release亭引。

cd ./opencv-2.4.9
mkdir release
cd ./release

對OpenCV進行CMake绎速,命令如下:

cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..

注:一定要加上后面兩個點 "..",兩個點..代表上級目錄的意思

cmake配置結(jié)束后焙蚓,可以看到一系列編譯配置情況纹冤。其中一定要注意檢查ffmpeg的編譯情況:
[圖片上傳失敗...(image-27c196-1527078270078)]

確定編譯過程中會對如下模塊進行編譯:
<code>core flann imgproc highgui features2d calib3d ml video legacy objdetect photo gpu ocl nonfree contrib java python stitching superres ts videostab viz.</code>

然后編譯、安裝OpenCV:

make
sudo make install

安裝過程比較慢购公,筆者較高的配置下也得編譯20分鐘萌京。可以稍事休息宏浩。

6知残、更新系統(tǒng)庫文件配置

sudo ldconfig

這樣可以直接重新加載系統(tǒng)中使用的庫,就不用重啟電腦就可用OpenCV庫了比庄。

四求妹、OpenCV + Qt5.7.0程序測試

創(chuàng)建工程OpenCV_Test,在OpenCV_Test.pro文件中最后加入:
<code>
INCLUDEPATH += /usr/local/include
/usr/local/include/opencv
/usr/local/include/opencv2

LIBS += /usr/local/lib/libopencv_highgui.so
/usr/local/lib/libopencv_core.so
/usr/local/lib/libopencv_imgproc.so
/usr/local/lib/libopencv_photo.so
/usr/local/lib/libopencv_calib3d.so
</code>
main.cpp如下:

#include <stdio.h>
#include <stdlib.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
#include <iostream>
#include <unistd.h>
#include <cctype>
#include <algorithm>

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>

using namespace std;
using namespace cv;

int main(int argc, char **argv)
{
    char key;
    // 幀速率
    int fps = 25;

    string VideoPath = "/home/grq/style.mp4";
    VideoCapture video(VideoPath);

    if(!video.isOpened())
    {
        cout<<"Video Open Error!"<<endl;
        return 1;
    }
    else
        cout<<"Video Opened."<<endl;

    Mat frame;
    namedWindow("Frame");
    for(;;)
    {
        if(!video.read(frame))
        {
            cout<<"No Frame!"<<endl;
            break;
        }
        imshow("Frame", frame);

        key = (char) cvWaitKey(1000 / fps);
        if( key == 27 || key == 'q' || key == 'Q' ) // 'ESC'
            break;
    }
    return 0;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末佳窑,一起剝皮案震驚了整個濱河市扒最,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌华嘹,老刑警劉巖吧趣,帶你破解...
    沈念sama閱讀 212,222評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡强挫,警方通過查閱死者的電腦和手機岔霸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,455評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來俯渤,“玉大人呆细,你說我怎么就攤上這事“私常” “怎么了絮爷?”我有些...
    開封第一講書人閱讀 157,720評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長梨树。 經(jīng)常有香客問我坑夯,道長,這世上最難降的妖魔是什么抡四? 我笑而不...
    開封第一講書人閱讀 56,568評論 1 284
  • 正文 為了忘掉前任柜蜈,我火速辦了婚禮,結(jié)果婚禮上指巡,老公的妹妹穿的比我還像新娘淑履。我一直安慰自己,他們只是感情好藻雪,可當(dāng)我...
    茶點故事閱讀 65,696評論 6 386
  • 文/花漫 我一把揭開白布秘噪。 她就那樣靜靜地躺著,像睡著了一般勉耀。 火紅的嫁衣襯著肌膚如雪指煎。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,879評論 1 290
  • 那天瑰排,我揣著相機與錄音贯要,去河邊找鬼。 笑死椭住,一個胖子當(dāng)著我的面吹牛崇渗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播京郑,決...
    沈念sama閱讀 39,028評論 3 409
  • 文/蒼蘭香墨 我猛地睜開眼宅广,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了些举?” 一聲冷哼從身側(cè)響起跟狱,我...
    開封第一講書人閱讀 37,773評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎户魏,沒想到半個月后驶臊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挪挤,經(jīng)...
    沈念sama閱讀 44,220評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,550評論 2 327
  • 正文 我和宋清朗相戀三年关翎,在試婚紗的時候發(fā)現(xiàn)自己被綠了扛门。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,697評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡纵寝,死狀恐怖论寨,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情爽茴,我是刑警寧澤葬凳,帶...
    沈念sama閱讀 34,360評論 4 332
  • 正文 年R本政府宣布,位于F島的核電站室奏,受9級特大地震影響火焰,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜窍奋,卻給世界環(huán)境...
    茶點故事閱讀 40,002評論 3 315
  • 文/蒙蒙 一荐健、第九天 我趴在偏房一處隱蔽的房頂上張望酱畅。 院中可真熱鬧琳袄,春花似錦、人聲如沸纺酸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,782評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽餐蔬。三九已至碎紊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間樊诺,已是汗流浹背仗考。 一陣腳步聲響...
    開封第一講書人閱讀 32,010評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留词爬,地道東北人秃嗜。 一個月前我還...
    沈念sama閱讀 46,433評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像顿膨,于是被迫代替她去往敵國和親锅锨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,587評論 2 350