79 lines
2.2 KiB
C++
79 lines
2.2 KiB
C++
////////////////////////////////////////////////////////////////////
|
|
// 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 //////////////////////////////////////////////////////
|
|
|