文章出處

opencv筆記1:opencv的基本模塊,以及環境搭建

安裝系統

使用fedora22-workstation-x86_64

安裝opencv

sudo dnf install opencv-devel

安裝cmake

sudo dnf install cmake

查看opencv的基本模塊

cd /usr/include/opencv2/
vim opencv_modules.hpp

內容如下:

#define HAVE_OPENCV_CALIB3D
#define HAVE_OPENCV_CONTRIB
#define HAVE_OPENCV_CORE
#define HAVE_OPENCV_FEATURES2D
#define HAVE_OPENCV_FLANN
#define HAVE_OPENCV_GPU
#define HAVE_OPENCV_HIGHGUI
#define HAVE_OPENCV_IMGPROC
#define HAVE_OPENCV_LEGACY
#define HAVE_OPENCV_ML
#define HAVE_OPENCV_OBJDETECT
#define HAVE_OPENCV_OCL
#define HAVE_OPENCV_PHOTO
#define HAVE_OPENCV_STITCHING
#define HAVE_OPENCV_SUPERRES
#define HAVE_OPENCV_TS
#define HAVE_OPENCV_VIDEO
#define HAVE_OPENCV_VIDEOSTAB

對應著opencv這個計算機視覺代碼庫中的所有模塊:
calib3d calibration(校準)+三維重建
contrib contribution 最近新添加的特性 先不管它
core 核心模塊
features2d 特征檢測/描述子提取
flann fast library for approximate nearest neighbors
gpu GPU加速(nvidia卡)
highgui 高層的GUI操作(跟算法沒啥關系)
improc image processing 圖像處理模塊
legacy 廢棄堆,用于向下兼容
ml machine learning,包括統計模型和分類算法
obj_detect 目標檢測
ocl opencl加速
photo 圖像修復、去噪
stiching 圖像拼接
superres super resolution 超分辨率
ts test 測試模塊,不用管
video 視頻分析組件
videostab video stabilization 視頻穩定相關組件

這些模塊中,core、imgproc、features2d是最基本的,ml和flann是機器學習相關的。對我而言gpu和opencl的可以不看。

配置clion

使用JetBrain公司的CLion作為IDE,它使用cmake構建工程,使用細節上比QtCreator好用些。
下載clion后解壓,然后進行破解工作:下載crack文件,解壓后進入目錄執行:

java -jar build/libs/JetbrainsPatchKeygen-1.0.jar

輸入你當前登錄的系統中的用戶名,以及clion安裝絕對路徑,生成的license復制好,打開clion目錄中的bin/clion.sh,在GUI提示界面中貼上去。

配置搜索項

為了能在圖形界面的搜索框中找到clion,就像找到gedit一樣,找到結果后能用鼠標打開而不是每次都用命令行打開,配置.desktop文件.
在fedora22下,創建/usr/share/applications/clion.desktop文件,內容如下:

[Desktop Entry]
Version=1.0
Type=Application
Name=CLion
GenericName=IDE
Exec=/opt/clion/bin/clion.sh
Terminal=false
MimeType=text/plain;
Icon=clion
Categories=IDE
StartupNotify=true

用clion+opencv寫hello world

新建工程,首先修改CMakeLists.txt,在最后一行add_executable一行前后,分別插入如下兩行內容:

find_package(OpenCV REQUIRED)
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

比如我的工程叫opencv_test,我的完整的CMakeLists.txt內容為:

cmake_minimum_required(VERSION 3.2)
project(opencv_test)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")

set(SOURCE_FILES main.cpp)
find_package(OpenCV REQUIRED)
add_executable(opencv_test ${SOURCE_FILES} source_file.h source_file.cpp)
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})

main.cpp中寫一段讀取圖片并顯示的代碼:

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main(){
    Mat image = imread("/home/chris/workspace/clion/lena.jpg");
    imshow("lena圖像", image);
    waitKey(0);
    destroyAllWindows();
    return 0;
}

注意到IDE右上方的Buid All字樣,先點左邊的向下箭頭,這是執行cmake和make;然后會彈窗讓你確認配置;最后點右邊的小三角執行run。


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()