实用图像处理入门 - 1 - opencv VS2012 环境搭建
- 作者: 知明所以 • Milo
- 博客: http://www.cnblogs.com/jhzhu
- 邮箱: jhzhuustc@gmail.com
- 日期: 2013年7月6日
1. 写在前面的话:
这一系列博文, 也是我的图像处理入门之路.
庆幸的是, 我站在很多巨人的肩膀上, 比较顺利的到达了一个小里程碑.
难过的是, 我说"比较顺利"是因为从互联网泛滥的信息里面找到真正有用同时又在我的理解范围之内的资料, 不是一件很容易的事情.
所以, 我想让更多的和我一样的入门者, 能通过这一系列博文, 顺利的"进入"到图像处理来而不是被开始的荆棘吓走.
如果有一个朋友因为我而更"容易"入门到实用图像处理, 我便觉得我做的事情有意义, 也是我继续写下去的动力.
正如日志标题所说, 这一系列日志非常偏重于"实用", 而很少提到原理. 显而易见的目的就是想让任何一个有一点coding经验的人都能快速的构建自己的分类器对图像进行识别. 当然, 如果你想深入了解, 每篇日志都有"扩展阅读". 为了不打断原本的"实用主义"的节奏, 我把这些”扩展阅读”都放在了日志末尾.
2. VS2012, opencv环境搭建
2.1 环境准备
- 安装 Visual Studio 2012
- 下载 opencv 最新版本( 目前是2.4.6, 下载链接 )
2.2 安装 opencv
2.2.1. 双击下载的 OpenCV-2.x.x.exe. 选择你想解压到的位置.
2.2.2. 设置环境变量.
步骤一, 打开环境变量设置界面.
方法一: 开始 –> 控制面板 –> 系统和安全 –> 系统 –> 高级系统设置 –> 高级 –> 环境变量
方法二: 开始 –> 控制面板, 右上角搜索”环境变量”, 点击”编辑系统环境变量”-> 环境变量
上述操作之后可看到以下界面:
步骤二, 点击按钮1( 如上图所示“新建”),
变量名填写”opencv”.
变量值填写”{opencv}/build/x86/vc11/bin”. ( {opencv} 替换为你自己的opencv安装目录" )
关闭上图”新建用户变量”窗口
步骤三, 在上上图”环境变量”窗口找到变量”path”( 大小写不敏感 ). 点击按钮2( 如上上图所示”编辑” )
更改”变量值”, 在原有的变量值基础上, 增加”;%opencv%”. 点击确定.
2.3 设置 VS 2012 环境.
2.3.1. 如果现在你的 vs打开着,请关闭重新打开vs.
2.3.2. 新建 Project
下一步, 注意下面几个选项.
完成 项目创建
2.3.3. 设置项目属性.
2.3.3.1 步骤一, 新建 Property Sheet.
在VS最左侧找到 “Property Manager”( 属性管理 ) 选项卡, 如下图所示. ( 如果没有找到”Property Manager”. 点击菜单栏 “VIEW” –> “Property Manager” 即可看见 )
如下图所示, 在 “Debug|Win32” 上右键单击, 点击”Add New Project Property Sheet”
填写以下标注内容.
Name 随便写, 只要你能认识
Location 随便写, 只要你能找到.
点击”Add”完成创建.
2.3.3.2 步骤二, 编辑 Property Sheet 属性
如下图所示, 编辑 “opencv244” 的属性.
做以下编辑:
Include Directories 添加 “{opencv}\build\include”.
Library Directories 添加 “{opencv}\build\x86\vc11\lib”; ( {opencv} 替换为你的opencv安装路径 )
图下图所示, 点击”Linker –> Input –> Additional Dependencies”.
添加以下内容:
opencv_core246d.lib
opencv_imgproc246d.lib
opencv_highgui246d.lib
opencv_ml246d.lib
opencv_video246d.lib
opencv_features2d246d.lib
opencv_calib3d246d.lib
opencv_objdetect246d.lib
opencv_contrib246d.lib
opencv_legacy246d.lib
opencv_flann246d.lib
上面的”246”换成你下载的opencv版本.比如你的版本是2.4.4, 那么所有的246换成244即可.
完成设置
2.3.3.4. 设置 Release 属性
完成”设置项目属性”之后, 你的debug版本便可正常使用. 如果需要设置 release 版本. 重复上面步骤3.
中间有两处不同:
1. 在步骤2.3.3.1中, 需要对 “Release |Win32” 添加 Property Sheet.
2. 在步骤2.3.3.2 中 所有Additional Dependencies 项, XXX246d.lib 都去掉 “d". 比如 “opencv_core246d.lib” 变成”opencv_core246.lib”. 全部去掉后变成:
opencv_core246.lib
opencv_imgproc246.lib
opencv_highgui246.lib
opencv_ml246.lib
opencv_video246.lib
opencv_features2d246.lib
opencv_calib3d246.lib
opencv_objdetect246.lib
opencv_contrib246.lib
opencv_legacy246.lib
opencv_flann246.lib
2.3.4 编写测试代码并运行.
2.3.4.1. 新建 main.cpp. 填写以下代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
#include <opencv2/opencv.hpp> using namespace cv; int main() { Mat img = imread( "../img.png" ); if (img.empty()) { fprintf (stderr, "Error: load image failed." ); return -1; } namedWindow( "image" , CV_WINDOW_AUTOSIZE); imshow( "image" , img); waitKey(); return 0; } |
2.3.4.2 随便找张图片, 放到放到你的工程目录, 命名为 img.png:
2.3.4.3 RUN~~
Contradulations~
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?