论vs2008与opencv和tif图片

最近我让vs2008与opencv“相杀相爱”,这波操作的目的是为了用vs2008载人opencv从而打开tif格式的图片。说说我一天的时间的过程吧。开始,我上网一搜,关于此方面的文章,博客非常多。我选了一个挺权威的百文库开始了我的vs2008和opencv的载入。,,,,一通操作后,发现后面进行不下去了,具体问题是D:\opencv\opencv\vs2008\include的路径后面应该还要有一个opencv,然而没有。原因是我在进行的是vs2008与opencv2.49版本的载入,而我的参考文章的却是vs2008与opencv2.0版本的载入,哭

。所以,,,,。没事,一点小困难算什么,所以我就吭哧吭哧的找opencv2.0版本,让我找到了,,。按照如下操作,


    一、准备工作这里我用到的平台是 Microsoft Visual Studio 2008 和OpenCV2.0 OpenCV2.0下载地址 http://www.opencv.org.cn/index.php/Download。安装OpenCV2.0,假定安装目录为:D:Program FilesOpenCV2.0
CMake下载地址 http://www.cmake.org/cmake/resources/software.html (选择 Win32 Installer 安装版本)。

 
 二、编译OpenCV
1. 用CMake导出VC++ 项目文件
■ 运行cmake-gui,设置路径为OpenCV安装路径(例如:D:\Program Files\OpenCV2.0),并创建子目录 D:\Program Files\OpenCV2.0\vc2008,用于存放编译结果。

■ 然后点 configure,在弹出的对话框内选择 Visual Studio 9 2008。
■ Microsoft Visual Studio 2008 正式版支持OpenMP,所以ENABLE_OPENMP这个选项要勾上;如果是Express版本,则不支持OpenMP,所以需要取消ENABLE_OPENMP选项。

 ■ 最后再点击Generate。

2. 编译 OpenCV Debug 和 Release版本库 完成上一步骤后,将在D:\Program Files\OpenCV2.0\vc2008目录下生成OpenCV.sln的VC Solution File,请用VC++ 2008 Express打开OpenCV.sln,然后执行如下操作:

■ 在Debug下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。

■ 在Release下,选择Solution Explorer里的 Solution OpenCV,点右键,运行"Rebuild Solution";如编译无错误,再选择INSTALL项目,运行"Build"。 
此时,OpenCV的*d.dll文件(for debug)和*.dll文件(for release)将出现在D:\Program Files\OpenCV2.0\vc2008\bin目录中;OpenCV的*d.lib文件(for debug) 和*.lib文件(for release)将出现在D:\Program Files\OpenCV2.0\vc2008\lib目录;头文件*.h出现在D:\Program Files\OpenCV2.0\vc2008\include\opencv中。
至此Microsoft Visual Studio 2008 调用的OpenCV动态库生成完毕。
三、配置Windows环境变量Path
将D:\Program Files\OpenCV2.0\vc2008\bin加入Windows系统环境变量Path中。 加入后,必须注销当前用户或者重新启动才能生效。
四、为Microsoft Visual Studio 2008 配置OpenCV环境
打开Microsoft Visual Studio 2008,菜单 Tools -> Options -> Projects and Solutions -> VC++ Directories。
■ Show directories for选择include files,加入目录 D:\Program Files\OpenCV2.0\vc2008\include\opencv 
■ Show directories for选择library files,加入目录 D:\Program Files\OpenCV2.0\vc2008\lib

五、使用OpenCV 2.0 编程
以后每创建一个OpenCV 的Win32 控制台程序,都需要添加依赖的库
■ 选择Solution Explorer里的 “项目名称”,点击鼠标右键,选择Properties;
■ 为项目的Debug配置增加依赖的库:cxcore200d.lib cv200d.lib highgui200d.lib; ■ 为项目的Release配置增加依赖的库:cxcore200.lib cv200.lib highgui200.lib


好了,总算载人好了openCV,经过一通测试

#include "math.h"
#include <cv.h>  
#include "iostream"
using namespace std;
using namespace cv;
const char* filename1 = "C:\\Users\\Administrator\\Desktop\\tmp\\44.tif";//测试图片
int main(int argc, char** argv)
{
    IplImage    *img;//匹配图
   img = cvLoadImage(filename1, 1);
    cv::namedWindow("image", CV_WINDOW_AUTOSIZE); //创建窗口
    cv::imshow("image", img); //显示图像
    cv::waitKey();
    return 0;
}

结果太让人失望了,只有png格式的图片可以被cvLoadImage载入,,,

经过我严密的排查,我找到了原因,那就是opencv2.0这个库有点久了,所以没办法,只能用vs2008载入opencv2.49

,这一切又回到了原点

。在载入的过程中问题有来了,那就是opencv2.49中只有vc10,vc11,vc12,这意味着opencv2.49没有提供vs2008的库,这么办了,找了一阵,找到了用cmake编译一波,走起i,皮皮虾我们去编译,编译成功后再D:\opencv\opencv\build\x86建立一个vc9的文件夹,将编译后产生的lib,bin文件夹赋值到vc9中。最后,按照网上的教程,就可以成功载入opencv2.49了。哈哈,现在是见证奇迹的时刻了,同样用上面的测试程序,我成功的打开了bmp,jpg,png,,,,,。但是唯独tif格式的图片打不开,而我用同样的操作,vs2013却可以打开tif图片,真的是太坑了,我也找了很多办法,但是,朋友们,vs2008载入opencv就是打不开tif格式的图片,只能是vs2008有毒,所以一个忠告,后面开发的朋友们,尽量用版本高一点的软件,低版本有很多无解的bug!