33 #ifndef SG2_CVMAT_FACTORY_H_
34 #define SG2_CVMAT_FACTORY_H_
36 #include <opencv2/core/core.hpp>
60 template <
typename SG_T>
static cv::Mat get_cvMat(SGMatrix<SG_T> sgMat,
68 template <
typename SG_T>
static cv::Mat get_cvMat_from_features
69 (CDenseFeatures<SG_T>* sgDense,
int cv_type);
72 template <
typename SG_T,
typename CV_T>
static cv::Mat get_cvMat
73 (SGMatrix<SG_T> sgMat);
76 template <
typename SG_T,
typename CV_T> cv::Mat SG2CVFactory::get_cvMat
77 (SGMatrix<SG_T> sgMat)
79 int num_rows=sgMat.num_rows;
80 int num_cols=sgMat.num_cols;
81 const int outType=OpenCVTypeName<CV_T>::get_opencv_type();
82 const int inType=OpenCVTypeName<SG_T>::get_opencv_type();
83 cv::Mat cvMat(num_cols, num_rows, inType);
84 memcpy((SG_T*)cvMat.data, sgMat.matrix, num_rows*num_cols*
sizeof(SG_T));
85 cvMat.convertTo(cvMat,outType);
89 template <
typename SG_T> cv::Mat SG2CVFactory::get_cvMat
90 (SGMatrix<SG_T> sgMat,
int cv_type)
96 cvMat=SG2CVFactory::get_cvMat<SG_T, unsigned char>(sgMat);
100 cvMat=SG2CVFactory::get_cvMat<SG_T, signed char>(sgMat);
104 cvMat=SG2CVFactory::get_cvMat<SG_T, unsigned short>(sgMat);
108 cvMat=SG2CVFactory::get_cvMat<SG_T, signed short>(sgMat);
112 cvMat=SG2CVFactory::get_cvMat<SG_T, int>(sgMat);
116 cvMat=SG2CVFactory::get_cvMat<SG_T, float>(sgMat);
120 cvMat=SG2CVFactory::get_cvMat<SG_T, double>(sgMat);
126 template <
typename SG_T> cv::Mat SG2CVFactory::get_cvMat_from_features
127 (CDenseFeatures<SG_T>* sgDense,
int cv_type)
129 SGMatrix<SG_T> sgMat=sgDense->get_feature_matrix();
130 cv::Mat cvMat=SG2CVFactory::get_cvMat<SG_T>(sgMat, cv_type);
all of classes and functions are contained in the shogun namespace