Ubuntu 安裝OpenCV3.0.0
sudo rm -r /usr/local/include/opencv2
/usr/local/include/opencv
/usr/include/opencv
/usr/include/opencv2
/usr/local/share/opencv
/usr/local/share/OpenCV
/usr/share/opencv
/usr/share/OpenCV
/usr/local/bin/opencv*
/usr/local/lib/libopencv*
install reference
http://www.samontab.com/web/2014/06/installing-opencv-2-4-9-in-ubuntu-14-04-lts/
OpenCV安裝
1 系統更新
利用ubuntu自帶的更新管理器或者
sudo apt-get update
sudo apt-get upgrade
2 安裝必要的元件
sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen3-dev yasm libfaac-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev
libxvidcore-dev libx264-dev libqt4-dev libqt4-opengl-dev sphinx-common texlive-latex-extra libv4l-dev libdc1394-22-dev libavcodec-dev libavformat-dev libswscale-dev default-jdk ant libvtk5-qt4-dev
3 下載opencv3.0
http://opencv.org/downloads.html
解壓到某個檔案下,這裡選擇
/home/yourname/opencv3.0
4 編譯opecv3.0
進入解壓後的opencv3.0目錄
mkdir build
進入build目錄
cd build
cmake -D WITH_TBB=ON -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_V4L=ON -D INSTALL_C_EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES=ON -D BUILD_EXAMPLES=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
5 安裝opencv3.0
在build目錄
make
sudo make install
6 配置opencv.conf file ,加入環境變數
sudo gedit /etc/ld.so.conf.d/opencv.conf
在opencv.conf裡面加入命令
/usr/local/lib
更新庫目錄
sudo ldconfig
開啟檔案bash.bashrc
sudo gedit /etc/bash.bashrc
加入下面兩行
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
7 測試你的opencv3.0是否安裝成功
編譯不通過請登出或者重啟電腦試試
測試程式碼:opencvtest.cpp
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace cv;
int main()
{
Mat src = imread("test.jpg",1);
imshow("src",src);
waitKey(0);
return 0;
}
注意:linux下面的目錄形式為/.../....
所以“#include <opencv2\core\core.hpp>” 會找不到標頭檔案
編譯方式:
1 命令列
g++ opencvtest.cpp -o opencvtest `pkg-config --cflags --libs opencv`
2 藉助cmake,寫CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(opencvtest)
find_package( OpenCV REQUIRED )
add_executable( opencvtest opencvtest.cpp )
target_link_libraries( opencvtest ${OpenCV_LIBS} )
之後 執行
cmake .
Make
執行
./ opencvtest
8 opnecv3.0的HDR效果測試
#include <opencv2/photo.hpp>
#include "opencv2/imgcodecs.hpp"
#include <opencv2/highgui.hpp>
#include <vector>
#include <iostream>
#include <fstream>
#include <string>
using namespace cv;
using namespace std;
void loadExposureSeq(string, vector<Mat>&, vector<float>&);
int main(int, char**argv)
{
vector<Mat> images;
vector<float> times;
string strpath = "./SampleLighthouse";
loadExposureSeq(strpath, images, times);
for (int i = 0; i < times.size(); ++i)
{
cout << times[i] << " ";
}
cout << endl << "here" << endl;
Mat response;
Ptr<CalibrateDebevec> calibrate = createCalibrateDebevec();
calibrate->process(images, response, times);
Mat hdr;
Ptr<MergeDebevec> merge_debevec = createMergeDebevec();
merge_debevec->process(images, hdr, times, response);
Mat ldr;
Ptr<TonemapDurand> tonemap = createTonemapDurand(2.2f);
tonemap->process(hdr, ldr);
Mat fusion;
Ptr<MergeMertens> merge_mertens = createMergeMertens();
merge_mertens->process(images, fusion);
imwrite("fusion.png", fusion * 255);
imwrite("ldr.png", ldr * 255);
imwrite("hdr.hdr", hdr);
return 0;
}
void loadExposureSeq(string path, vector<Mat>& images, vector<float>& times)
{
path = path + std::string("/");
ifstream list_file((path + "ST.txt").c_str());
string name;
float val;
while(list_file >> name >> val) {
Mat img = imread(path + name);
images.push_back(img);
times.push_back(1 / val);
}
list_file.close();
}
曝光時間 ST.txt
s1.jpg 40.0
s2.jpg 10.0
s3.jpg 2.0
在普通的顯示中無法正常顯示,就不給出了
色調對映演算法感覺不好,影象的很多細節丟失了。