首页 > 代码库 > vs2015下通过opencv使用hdf5
vs2015下通过opencv使用hdf5
因为使用Kinect SDK编程,又需求高速文件I/O,所以通过opencv接口使用hdf5。
(opencv 3.1以上版本,在其Extra Modules中支持hdf5)
一、 环境
OS: Windows 10
IDE: Visual Studio 2015 (vc14)
SDK: hdf5-1.8.19, opencv-3.2, opencv-contrib-3.2
Other Tools: CMake 3.9.0-rc5
二、 安装(Win64)
1. 安装hdf5 1.8.19
2. cmake安装opencv+contrib 3.2,参见官方文档:
http://docs.opencv.org/master/d3/d52/tutorial_windows_install.html
https://github.com/opencv/opencv_contrib
注意:
加入opencv_contrib后再按下cmake-gui的config键。
在VS编译的时候,不要忘了分别编译Debug和Release版本,之后再编译INSTALL的Debug和Release版本(相当于Linux里的make install)。
3. 设置OPENCV_DIR环境变量,%OPENCV_DIR%\bin加入到Path里(以便程序运行时可以找到DLL文件)。
三、 VS编程
这里使用C++语言。
1. 设置opencv到INCLUDE和LIB目录,参见官方文档:
http://docs.opencv.org/master/d6/d8a/tutorial_windows_visual_studio_Opencv.html
2. 项目属性->链接器->输入-附加依赖项,加入:
opencv_core320d.lib
opencv_hdf320d.lib
(带d的是Debug版lib,这里也在属性管理器里可以分别设置Release版的lib)
3. 示例代码如下:
#include "stdafx.h" #include <opencv2/core.hpp> #include <opencv2/hdf.hpp> int main() { int count = 0; // dual channel hilbert matrix cv::Mat H(100, 100, CV_64FC2); for (int i = 0; i < H.rows; i++) { for (int j = 0; j < H.cols; j++) { H.at<cv::Vec2d>(i, j)[0] = 1. / (i + j + 1); H.at<cv::Vec2d>(i, j)[1] = -1. / (i + j + 1); count++; } } // open / autocreate hdf5 file cv::Ptr<cv::hdf::HDF5> h5io = cv::hdf::open("mytest.h5"); // write / overwrite dataset h5io->dswrite(H, "hilbert"); //release h5io->close(); return 0;
vs2015下通过opencv使用hdf5