1. 程式人生 > >vs2015下通過opencv使用hdf5

vs2015下通過opencv使用hdf5

for int tool 設置 安裝 modules win 使用 create

因為使用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