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