由于在使用OpenCV的神经网络的过程中,需要将样本保存为列向量或者行向量的形式,而在图像处理中,OpenCV读取进行的图像是以矩阵的形式保存的,因此,需要将矩阵转换为列向量的形式,由于我并没有在OpenCV的帮助文档中找到这样的一个函数(如果您发现有这样函数,请告诉我,谢谢),所以考虑自己写一个简单的转化器。
matconverter.h
/*M///
// Copyright (c) 2014, sheng
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// * Redistributions of source code must retain the above copyright notice,
// this list of conditions and the following disclaimer.
//
// * Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
//M*/
#ifndef MATCONVERTER_H
#define MATCONVERTER_H
#include "opencv2/opencv.hpp"
/**
* @brief The MatConverter class The class used to change the size of the mat.
*
* @author sheng
* @date 2014-09-18
* @version 0.1
*
* @history
* <author> <date> <version> <description>
* sheng 2014-09-18 0.1 build the module
*
*/
class MatConverter
{
public:
MatConverter();
static bool MatToColumnVector(const cv::Mat& InputMat,