Visual Studio下OpenCV最完美的环境配置方法

原文地址:点击打开链接

本文方法主要适用于经典的OpenCV2.4.x的所有版本,3.x不在范围内。本文的配置方法可以容忍vs的所有版本,以及32位和64位的配置冲突问题,完美解决OpenCV所有配置相关问题,一次完成配置,轻松编写所有程序,并且能使各种vs版本配置的环境不冲突的方法。 
如果你已经配置了opencv,有问题或者没问题,避免方法冲突可以清掉现有配置,以现在这种方法来实现最佳配置。

1.下载OpenCV:这里选择2.4.10

下载后,我们得到一个7z的exe文件压缩包,双击解压缩到指定目录如下图: 


2.修改目录名

a.将build/x86下的vc10、vc11、vc12(如果有vc9、vc13等,一样修改,后面加0即可),修改为vc100、vc110、vc120,如图 


b.将build/x64下的vc10、vc11、vc12(如果有vc9、vc13等,一样修改,后面加0即可),修改为vc100、vc110、vc120,如图 


c.将build下的x86修改为win32 


3.打开visual studio(无论你什么版本都行),这里以vs2013为例,新建一个控制台项目:



a.选择配置管理器-新建解决方案平台-选择x64,确定即可,如图: 


b.选择视图-属性管理器 


c.填入头文件和库文件路径 
这里库的路径是如下,该库路径是全部通用: 
H:\opencv2.4.10\build/$(Platform)/vc$(PlatformToolsetVersion)/staticlib 


d.添加宏定义:_CRT_SECURE_NO_WARNINGS 


4.写程序

在代码中写下:


a.打开cv.h 


b.在cv.h中添加一句:#include <opencv/cv_import_static_lib.h> 


c.打开core.hpp 


d.在core.hpp中添加一句:#include <opencv/cv_import_static_lib.h> 


e.core.hpp上点右键,打开core.hpp所在目录,进入到opencv头文件目录下,然后转到:H:\opencv2.4.10\build\include\opencv 

f.在目录中新建文本文件.txt,并将如下内容粘贴并保存

<code class="hljs vala has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;"><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma once</span>

<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#ifdef WIN32</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#include <opencv2/core/version.hpp></span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//定义宏,保证在debug模式下,导入opencv_xxxd.lib,release模式下导入opencv_xxx.lib</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#ifdef _DEBUG</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#   define CC_CVLIB(name) "opencv_" name CC_CVVERSION_ID "d.lib"</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#   define CC_CVLIB_2(name) "opencv_" name CC_CVVERSION_ID2 "d.lib"</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#   define CC_LIB(name) name "d.lib"</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#else</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#   define CC_CVLIB(name) "opencv_" name CC_CVVERSION_ID ".lib"</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#   define CC_CVLIB_2(name) "opencv_" name CC_CVVERSION_ID2 ".lib"</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#   define CC_LIB(name)   name ".lib"</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#endif</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//对于静态库,必须导入如下这些库</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "kernel32.lib")</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "user32.lib")</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "gdi32.lib")</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "Vfw32.lib")</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "winspool.lib")</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "comdlg32.lib")</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "advapi32.lib")</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "shell32.lib")</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "ole32.lib")</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "oleaut32.lib")</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "uuid.lib")</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "odbc32.lib")</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "odbccp32.lib")</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "Comctl32.lib")</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//如果为3版,导入方式不同</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#if CV_MAJOR_VERSION==3</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//定义cv的库名称,2410版的,如果是其他版本,则修改为指定的就好了</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#define CC_CVVERSION_ID       "2410"</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#define CC_CVVERSION_ID2       "300"</span>

<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//导入静态库依赖</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, CC_LIB("IlmImf"))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, CC_LIB("libjasper"))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, CC_LIB("libjpeg"))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, CC_LIB("libpng"))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, CC_LIB("libtiff"))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, CC_LIB("libwebp"))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, "ippicvmt.lib")</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("calib3d") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("calib3d") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("contrib") )</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//#pragma comment( lib, CC_CVLIB("core") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("core") )</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//#pragma comment( lib, CC_CVLIB("core") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("features2d") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("features2d") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("flann") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("flann") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("gpu") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("highgui") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("highgui") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("imgcodecs") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("imgproc") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("imgproc") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("legacy") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("ml") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("ml") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("ocl") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("nonfree") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("objdetect") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("objdetect") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("photo") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("photo") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("shape") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("stitching") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("stitching") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("superres") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("superres") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("ts") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("ts") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("video") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("video") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("videoio") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB_2("videostab") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("videostab") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, CC_LIB("zlib"))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#else</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#define CC_CVVERSION_ID CVAUX_STR(CV_VERSION_EPOCH) CVAUX_STR(CV_VERSION_MAJOR) CVAUX_STR(CV_VERSION_MINOR)</span>
<span class="hljs-comment" style="color: rgb(136, 0, 0); box-sizing: border-box;">//导入静态库依赖</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, CC_LIB("IlmImf"))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, CC_LIB("libjasper"))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, CC_LIB("libjpeg"))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, CC_LIB("libpng"))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, CC_LIB("libtiff"))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("calib3d") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("contrib") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("core") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("features2d") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("flann") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("gpu") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("highgui") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("imgproc") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("legacy") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("ml") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("ocl") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("nonfree") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("objdetect") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("photo") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("stitching") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("superres") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("ts") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("video") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment( lib, CC_CVLIB("videostab") )</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#pragma comment(lib, CC_LIB("zlib"))</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#endif //CV_MAJOR_VERSION</span>
<span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">#endif</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li><li style="box-sizing: border-box; padding: 0px 5px;">33</li><li style="box-sizing: border-box; padding: 0px 5px;">34</li><li style="box-sizing: border-box; padding: 0px 5px;">35</li><li style="box-sizing: border-box; padding: 0px 5px;">36</li><li style="box-sizing: border-box; padding: 0px 5px;">37</li><li style="box-sizing: border-box; padding: 0px 5px;">38</li><li style="box-sizing: border-box; padding: 0px 5px;">39</li><li style="box-sizing: border-box; padding: 0px 5px;">40</li><li style="box-sizing: border-box; padding: 0px 5px;">41</li><li style="box-sizing: border-box; padding: 0px 5px;">42</li><li style="box-sizing: border-box; padding: 0px 5px;">43</li><li style="box-sizing: border-box; padding: 0px 5px;">44</li><li style="box-sizing: border-box; padding: 0px 5px;">45</li><li style="box-sizing: border-box; padding: 0px 5px;">46</li><li style="box-sizing: border-box; padding: 0px 5px;">47</li><li style="box-sizing: border-box; padding: 0px 5px;">48</li><li style="box-sizing: border-box; padding: 0px 5px;">49</li><li style="box-sizing: border-box; padding: 0px 5px;">50</li><li style="box-sizing: border-box; padding: 0px 5px;">51</li><li style="box-sizing: border-box; padding: 0px 5px;">52</li><li style="box-sizing: border-box; padding: 0px 5px;">53</li><li style="box-sizing: border-box; padding: 0px 5px;">54</li><li style="box-sizing: border-box; padding: 0px 5px;">55</li><li style="box-sizing: border-box; padding: 0px 5px;">56</li><li style="box-sizing: border-box; padding: 0px 5px;">57</li><li style="box-sizing: border-box; padding: 0px 5px;">58</li><li style="box-sizing: border-box; padding: 0px 5px;">59</li><li style="box-sizing: border-box; padding: 0px 5px;">60</li><li style="box-sizing: border-box; padding: 0px 5px;">61</li><li style="box-sizing: border-box; padding: 0px 5px;">62</li><li style="box-sizing: border-box; padding: 0px 5px;">63</li><li style="box-sizing: border-box; padding: 0px 5px;">64</li><li style="box-sizing: border-box; padding: 0px 5px;">65</li><li style="box-sizing: border-box; padding: 0px 5px;">66</li><li style="box-sizing: border-box; padding: 0px 5px;">67</li><li style="box-sizing: border-box; padding: 0px 5px;">68</li><li style="box-sizing: border-box; padding: 0px 5px;">69</li><li style="box-sizing: border-box; padding: 0px 5px;">70</li><li style="box-sizing: border-box; padding: 0px 5px;">71</li><li style="box-sizing: border-box; padding: 0px 5px;">72</li><li style="box-sizing: border-box; padding: 0px 5px;">73</li><li style="box-sizing: border-box; padding: 0px 5px;">74</li><li style="box-sizing: border-box; padding: 0px 5px;">75</li><li style="box-sizing: border-box; padding: 0px 5px;">76</li><li style="box-sizing: border-box; padding: 0px 5px;">77</li><li style="box-sizing: border-box; padding: 0px 5px;">78</li><li style="box-sizing: border-box; padding: 0px 5px;">79</li><li style="box-sizing: border-box; padding: 0px 5px;">80</li><li style="box-sizing: border-box; padding: 0px 5px;">81</li><li style="box-sizing: border-box; padding: 0px 5px;">82</li><li style="box-sizing: border-box; padding: 0px 5px;">83</li><li style="box-sizing: border-box; padding: 0px 5px;">84</li><li style="box-sizing: border-box; padding: 0px 5px;">85</li><li style="box-sizing: border-box; padding: 0px 5px;">86</li><li style="box-sizing: border-box; padding: 0px 5px;">87</li><li style="box-sizing: border-box; padding: 0px 5px;">88</li><li style="box-sizing: border-box; padding: 0px 5px;">89</li><li style="box-sizing: border-box; padding: 0px 5px;">90</li><li style="box-sizing: border-box; padding: 0px 5px;">91</li><li style="box-sizing: border-box; padding: 0px 5px;">92</li><li style="box-sizing: border-box; padding: 0px 5px;">93</li><li style="box-sizing: border-box; padding: 0px 5px;">94</li><li style="box-sizing: border-box; padding: 0px 5px;">95</li><li style="box-sizing: border-box; padding: 0px 5px;">96</li><li style="box-sizing: border-box; padding: 0px 5px;">97</li><li style="box-sizing: border-box; padding: 0px 5px;">98</li><li style="box-sizing: border-box; padding: 0px 5px;">99</li><li style="box-sizing: border-box; padding: 0px 5px;">100</li><li style="box-sizing: border-box; padding: 0px 5px;">101</li><li style="box-sizing: border-box; padding: 0px 5px;">102</li><li style="box-sizing: border-box; padding: 0px 5px;">103</li><li style="box-sizing: border-box; padding: 0px 5px;">104</li><li style="box-sizing: border-box; padding: 0px 5px;">105</li><li style="box-sizing: border-box; padding: 0px 5px;">106</li><li style="box-sizing: border-box; padding: 0px 5px;">107</li><li style="box-sizing: border-box; padding: 0px 5px;">108</li><li style="box-sizing: border-box; padding: 0px 5px;">109</li><li style="box-sizing: border-box; padding: 0px 5px;">110</li><li style="box-sizing: border-box; padding: 0px 5px;">111</li><li style="box-sizing: border-box; padding: 0px 5px;">112</li><li style="box-sizing: border-box; padding: 0px 5px;">113</li></ul>

g.将新建文本文件.txt改名为cv_import_static_lib.h

h.回到工程中,修改工程的所有配置属性为静态mfc: 


i.点击执行或者按下Ctrl+F5 


正常情况下,应该会出现这个窗口,算正式完成配置 


5.后续每个新工程写程序的步骤

a.新建一个win32的工程并按照上面h步(回到工程中,修改工程的所有配置属性为静态mfc)的方法设置 
b.写任何你想要的opencv代码即可直接运行。

6.对于其他OpenCV项目以这种环境运行起来

a.删掉项目中附加依赖项中和opencv相关的lib配置或者代码中以#pragma comment配置的opencv库 
b.设置工程属性为静态mfc 
c.即可执行


基于5和6看,你会发现,使用的时候是相当方便的,不会再受dll所干扰而浪费时间,摸不着头脑。 
并且,这种模式,你能够在win32、x64、debug、release下完全跑起来,而不像之前,会出现很多异常。 
另外,这模式是基于静态库的,也就是发布软件的时候非常方便,不需要携带任何opencv的dll文件。非常有利于做各种事情。 
如果你在vs2010下配置的,那么以这个方式,在2013下也完全能够零改动跑起来。 
这就是完美~




  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Visual Studio配置 OpenCV 可以分为以下几个步骤: 1. 下载安装 OpenCV 库 首先需要从 OpenCV 官网下载适用于你的操作系统的 OpenCV 库,下载后进行安装。 2. 新建一个空的 Visual Studio 项目 在 Visual Studio 中,选择菜单 File -> New -> Project,然后选择 Visual C++ -> Empty Project,命名为 OpenCVProject。 3. 配置项目属性 在 Solution Explorer 中右键点击项目,选择 Properties。在左侧选择 Configuration Properties -> VC++ Directories,然后在右侧的 Include Directories 中加入 OpenCV 的 include 目录,如:`C:\opencv\build\include`。 接着,在左侧选择 Configuration Properties -> Linker -> General,然后在右侧的 Additional Library Directories 中加入 OpenCV 的 lib 目录,如:`C:\opencv\build\x64\vc15\lib`。 然后,在左侧选择 Configuration Properties -> Linker -> Input,然后在右侧的 Additional Dependencies 中加入需要连接的 OpenCV 库名字,如:`opencv_world420.lib`。 4. 编写代码 在项目中添加一个 C++ 源文件,如 main.cpp,然后在其中添加 OpenCV 的头文件和代码,例如: ```cpp #include <opencv2/opencv.hpp> using namespace cv; int main() { // 读取图像 Mat img = imread("image.jpg", IMREAD_COLOR); // 显示图像 namedWindow("Display window", WINDOW_AUTOSIZE); imshow("Display window", img); waitKey(0); return 0; } ``` 5. 编译和运行 在 Visual Studio 中,选择菜单 Build -> Build Solution 编译整个项目,然后选择菜单 Debug -> Start Without Debugging 运行程序。如果一切正常,就应该可以看到加载的图像窗口弹出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值