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。

opencv笔记1:opencv的基本模块,以及环境搭建的更多相关文章

  1. 《Programming Hive》读书笔记(一)Hadoop和hive环境搭建

    <Programming Hive>读书笔记(一)Hadoop和Hive环境搭建             先把主要的技术和工具学好,才干更高效地思考和工作.   Chapter 1.Int ...

  2. ldd3-2 构造和运行模块:环境搭建2

    之前搭建了Ubuntu10.04驱动开发环境,但是那儿的内核版本是2.6.32.27,总感觉无从下手的感觉,因为书上的内核版本是2.6.10,作为初学者不知道差异在哪里,或许不应该纠结这个问题吧. 昨 ...

  3. [OpenCV笔记]0.OpenCV中显示多张图像

    摘要 本文主要介绍OpenCV中同时显示多张IplImage图像的方法(C++形式的多图显示需要修改,用vector<Mat>可能比较方便),有点类似MATLAB中的subplot,只是暂 ...

  4. OpenCV 3.4.2 Windows系统下的环境搭建(附带opencv_contrib-3.4.2)

    前言 当前需要回到Windows平台下进行开发,在win10系统上搭建了编译opencv3.4.2的环境,并添加opencv_contrib-3.4.2的模块,以下是本文所需要的软件以及源码. 系统: ...

  5. 【JAVAWEB学习笔记】网上商城实战1:环境搭建和完成用户模块

    今日任务 完成用户模块的功能 1.1      网上商城的实战: 1.1.1    演示网上商城的功能: 1.1.2    制作目的: 灵活运用所学知识完成商城实战. 1.1.3    数据库分析和设 ...

  6. Cocostudio学习笔记(1) 扯扯蛋 + 环境搭建

    转眼七月份就到了,2014已经过了一半,而我也最终算是有"一年工作经验"了,开心ing. 回想这一年Cocos2dx的游戏开发经历,去年下半年重心主要在游戏的逻辑上,而今年上半年重 ...

  7. Android开发自学笔记(基于Android Studio1.3.1)—1.环境搭建(转)

    一.引言    本套学习笔记的开发环境是Windows 10 专业版和Android Studio 的最新版1.3.1. Android Studio 是一个Android开发环境,基于Intelli ...

  8. shell 脚本实战笔记(7)--集群网络相关知识和环境搭建

    前言: 对网络相关的知识, 做下笔记. 包括IP地址A/B/C的分类, 静态地址的配置/DNS配置, 以及网卡相关信息查看. *) A/B/C/D类网络地址的划分 IP地址=网络地址+主机地址 或 I ...

  9. React学习笔记-1-什么是react,react环境搭建以及第一个react实例

    什么是react?react的官方网站:https://facebook.github.io/react/下图这个就是就是react的标志,非常巧合的是他和我们的github的编辑器Atom非常相似. ...

  10. TypeScript学习笔记(一):介绍及环境搭建

    官网 TypeScript目前还在快速的发展中,当前的版本是1.6,有关TypeScript更多的信息可以在其官网中获取. http://www.typescriptlang.org/ 什么是Type ...

随机推荐

  1. AC日记——积木大赛 洛谷 P1969

    题目描述 春春幼儿园举办了一年一度的“积木大赛”.今年比赛的内容是搭建一座宽度为n的大厦,大厦可以看成由n块宽度为1的积木组成,第i块积木的最终高度需要是hi. 在搭建开始之前,没有任何积木(可以看成 ...

  2. [转]reids客户端 redis-cli用法

    连接:redis-cli -h machine -p port -n db转的:每次都搜,还是扔在这 Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以 ...

  3. 基于React Native的Material Design风格的组件库 MRN

    基于React Native的Material Design风格的组件库.(为了平台统一体验,目前只打算支持安卓) 官方网站 http://mrn.js.org/ Github https://git ...

  4. jquery-lazyload延迟加载图片 及 加载顺序 bug 修复

    jquery-lazyload延迟加载图片   代码修改片段 function update() { var counter = 0; /**fix by weiyj start***/ elemen ...

  5. Android 长按Listview显示CheckBox,实现批量删除。

    ListView实现的列表,如果是可编辑,可删除的,一般都要提供批量删除功能,否则的话,一项一项的删除体验很不好,也给用户带来了很大的麻烦. 实现效果图 具体实现代码 select.xml 主布局文件 ...

  6. jQuery上传插件Uploadify使用帮助

    Uploadify是JQuery的一个上传插件,实现的效果非常不错,带进度显示.它的功能特色总结如下: 支持单文件或多文件上传,可控制并发上传的文件数 在服务器端支持各种语言与之配合使用,诸如PHP, ...

  7. 如何下载Hibernate

    官网: http://hibernate.org/ 打开hibernate官网,选择Hibernate ORM,点击左侧的Downloads 点击Downloads后,可以看到如下页面,右侧是各个版本 ...

  8. 记录我开始学习 Git的路程

    工作半年多了,总觉得没学到什么东西,于是乎找了个Git学习一下,感觉还蛮厉害的样子.为此记录下我的路程 2015,11,26 更新 前面的路都挺艰难的,在官网下载msysgit网速几乎为0(心情千万只 ...

  9. 一句话概括下spring框架及spring cloud框架主要组件

    作为java的屌丝,基本上跟上spring屌丝的步伐,也就跟上了主流技术.spring 顶级项目:Spring IO platform:用于系统部署,是可集成的,构建现代化应用的版本平台,具体来说当你 ...

  10. ORCHARD中文文档(翻译)

    众所周知,Orchard是.net领域最好的开源CMS之一,他使用了微软最先进的技术,有一群先进理念的支持者,但是,所有的事情在国内总得加个但是,Orchard也不例外,中文资料相对比较少,官网提供的 ...