opencv笔记1:opencv的基本模块,以及环境搭建
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。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
2014-10-04 ld 脚本浅析-LD手册粗糙翻译