You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

78 lines
2.2 KiB

////////////////////////////////////////////////////////////////////
// Types.cpp
//
// Copyright 2007 cDc@seacave
// Distributed under the Boost Software License, Version 1.0
// (See http://www.boost.org/LICENSE_1_0.txt)
#include "Common.h"
#include "Types.h"
// D E F I N E S ///////////////////////////////////////////////////
// S T R U C T S ///////////////////////////////////////////////////
// G L O B A L S ///////////////////////////////////////////////////
#ifndef _MSC_VER
int _vscprintf(LPCSTR format, va_list pargs) {
va_list argcopy;
va_copy(argcopy, pargs);
const int retval(vsnprintf(NULL, 0, format, argcopy));
va_end(argcopy);
return retval;
}
#endif
/*----------------------------------------------------------------*/
namespace SEACAVE {
const ColorType<uint8_t>::value_type ColorType<uint8_t>::ONE(255);
const ColorType<uint8_t>::alt_type ColorType<uint8_t>::ALTONE(1.f);
const ColorType<uint32_t>::value_type ColorType<uint32_t>::ONE(255);
const ColorType<uint32_t>::alt_type ColorType<uint32_t>::ALTONE(1.f);
const ColorType<float>::value_type ColorType<float>::ONE(1.f);
const ColorType<float>::alt_type ColorType<float>::ALTONE(255);
const ColorType<double>::value_type ColorType<double>::ONE(1.0);
const ColorType<double>::alt_type ColorType<double>::ALTONE(255);
/*----------------------------------------------------------------*/
// print matrix
template<typename TYPE>
String cvMat2String(const TYPE* M, uint32_t rows, uint32_t cols, uint32_t step, LPCSTR format) {
String str;
char buf[32];
if (step == 0)
step = rows;
for (uint32_t i=0; i<rows; ++i) {
const TYPE* Mi = M+i*step;
for (uint32_t j=0; j<cols; ++j) {
_sntprintf(buf, 32, format, Mi[j]);
str += buf;
}
str += _T("\n");
}
return str;
}
String cvMat2String(const cv::Mat& M, LPCSTR format) {
switch (M.type()) {
case CV_32F: return cvMat2String(M.ptr<float>(), (uint32_t)M.rows, (uint32_t)M.cols, (uint32_t)M.step1(), format);
case CV_64F: return cvMat2String(M.ptr<double>(), (uint32_t)M.rows, (uint32_t)M.cols, (uint32_t)M.step1(), format);
}
return String();
}
/*----------------------------------------------------------------*/
} // namespace SEACAVE
// C L A S S //////////////////////////////////////////////////////