设计要求做图形界面。内容是对图片进行处理。简单的来说是图像源是没格式头的灰度图像,给的是dat的2进制数据。要求将数据读出并显示出来,其中涉及缩放和拼接的图像处理工作。从网上看了些相关材料,最后就选用opencv来做了。
最新的opencv版本是2.2,下载地址http://www.opencv.org.cn/index.php/Download这个地址是opencv的中文网站。其上有详细的安装教程。opencv2.2对VS2010做了优化,或者说对VS2010适应很不错。这次却是要求使用VS2005开发环境。原本想没啥区别,可按教程一步步下来,出错是必需的。
先简单说说下载下来opencv安装在英文目录下(其实中文目录下能安装,但按照惯例,能安装不代表能运行)。然后使用Cmake,编译器选VS2005.这在教程上都有:http://www.opencv.org.cn/index.php/VC_2005_Express%E4%B8%8B%E5%AE%89%E8%A3%85%E4%B8%8E%E9%85%8D%E7%BD%AEOpenCV1.0。然后使用对应VS编译一遍。
此时,OpenCV的*d.dll文件(for debug)和*.dll文件(for release)将出现在bin目录中;OpenCV的*d.lib文件(for debug)和*.lib文件(for release)将出现在lib目录;头文件*.h出现在include中。在然后是将bin目录加入到系统默认路径中。windows系统是在系统属性的高级设置中加入。最后是将lib和include包含进工程。这些都是在教程中有的。
问题来了,这样设置后。将安装后的example运行,会发现出错。提示无法打开*.h。可明明将include文件夹路径包含进去了的。在网上找了很多案例。发现用VS2008以下的都是以使用opencv1.0为案例的。难道VS2005不能使用新版本了?
答案是确定的,能使用。
我比较了opencv1.0和opencv2.2.发现其目录结构发生了改变。在1.0时代的include下是*.h的头文件,而opencv2.2时,却是opencv和opencv2.2的两个文件夹。据文档介绍是为了向下兼容而作出的改变。但会发现在VS2005编译时,系统在不出*.h的文件,因为include下只有2文件夹没有头文件。
设置可以按照之前的设置。再将opencv2.2安装下的include/opencv下的头文件复制一份到include下。再试试,是不是可以使用了,呵呵。
其实,使用opencv2.2时使用VS2010更好。或者使用VS2005+opencv1.0都不错。就没有以上为题了。但既然发现问题了,就记下解决方法,以资来者。