mirror of
https://github.com/opencv/opencv.git
synced 2024-11-27 12:40:05 +08:00
Fixes: Android NDK r7b, android build warnings, build with Visual Studio 2005.
This commit is contained in:
parent
2219e38192
commit
691d392312
@ -198,6 +198,25 @@ endif()
|
||||
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/${OPENCV_LIB_INSTALL_PATH}")
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
|
||||
set(OPENCV_INCLUDE_PREFIX include)
|
||||
if(INSTALL_TO_MANGLED_PATHS)
|
||||
set(OPENCV_INCLUDE_PREFIX include/opencv-${OPENCV_VERSION})
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
# Postfix of DLLs:
|
||||
set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")
|
||||
set(OPENCV_DEBUG_POSTFIX d)
|
||||
else()
|
||||
# Postfix of so's:
|
||||
set(OPENCV_DLLVERSION "")
|
||||
set(OPENCV_DEBUG_POSTFIX "")
|
||||
endif()
|
||||
|
||||
if(NOT "${CMAKE_DEBUG_POSTFIX}" STREQUAL "")
|
||||
set(OPENCV_DEBUG_POSTFIX "${CMAKE_DEBUG_POSTFIX}")
|
||||
endif()
|
||||
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# Path for build/platform -specific headers
|
||||
|
@ -163,7 +163,7 @@ set( CMAKE_SYSTEM_NAME Linux )
|
||||
#this one not so much
|
||||
set( CMAKE_SYSTEM_VERSION 1 )
|
||||
|
||||
set( ANDROID_SUPPORTED_NDK_VERSIONS -r7 -r6b -r6 -r5c -r5b -r5 "" )
|
||||
set( ANDROID_SUPPORTED_NDK_VERSIONS -r7b -r7 -r6b -r6 -r5c -r5b -r5 "" )
|
||||
if( CMAKE_HOST_WIN32 )
|
||||
file( TO_CMAKE_PATH "$ENV{PROGRAMFILES}" ANDROID_NDK_SEARCH_PATH )
|
||||
set( ANDROID_NDK_SEARCH_PATH "${ANDROID_NDK_SEARCH_PATH}/android-ndk" )
|
||||
@ -668,11 +668,11 @@ if( ARMEABI OR ARMEABI_V7A )
|
||||
set( CMAKE_CXX_FLAGS "-fPIC -Wno-psabi" )
|
||||
set( CMAKE_C_FLAGS "-fPIC -Wno-psabi" )
|
||||
if( ANDROID_USE_STLPORT )
|
||||
set( CMAKE_CXX_FLAGS "-fno-rtti -fno-exceptions" )
|
||||
set( CMAKE_C_FLAGS "-fno-rtti -fno-exceptions" )
|
||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions" )
|
||||
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-rtti -fno-exceptions" )
|
||||
else()
|
||||
set( CMAKE_CXX_FLAGS "-frtti -fexceptions" )
|
||||
set( CMAKE_C_FLAGS "-fexceptions" )
|
||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -frtti -fexceptions" )
|
||||
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fexceptions" )
|
||||
endif()
|
||||
remove_definitions( -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ )
|
||||
add_definitions( -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ )
|
||||
@ -682,11 +682,11 @@ elseif( X86 )
|
||||
set( CMAKE_CXX_FLAGS "-ffunction-sections -funwind-tables" )
|
||||
set( CMAKE_C_FLAGS "-ffunction-sections -funwind-tables" )
|
||||
if( ANDROID_USE_STLPORT )
|
||||
set( CMAKE_CXX_FLAGS "-fno-rtti -fno-exceptions" )
|
||||
set( CMAKE_C_FLAGS "-fno-rtti -fno-exceptions" )
|
||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti -fno-exceptions" )
|
||||
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-rtti -fno-exceptions" )
|
||||
else()
|
||||
set( CMAKE_CXX_FLAGS "-frtti -fexceptions" )
|
||||
set( CMAKE_C_FLAGS "-fexceptions" )
|
||||
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -frtti -fexceptions" )
|
||||
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fexceptions" )
|
||||
endif()
|
||||
else()
|
||||
set( CMAKE_CXX_FLAGS "" )
|
||||
|
@ -46,7 +46,7 @@ macro(ocv_generate_dependencies_map_configmake suffix configuration)
|
||||
get_filename_component(__libname "${__libname}" NAME)
|
||||
|
||||
if(WIN32)
|
||||
string(REGEX REPLACE "[.]dll$" ".lib" __libname "${__libname}")
|
||||
string(REGEX REPLACE "${CMAKE_SHARED_LIBRARY_SUFFIX}$" "${CMAKE_LINK_LIBRARY_SUFFIX}" __libname "${__libname}")
|
||||
endif()
|
||||
|
||||
set(OPENCV_DEPENDENCIES_MAP_${suffix} "${OPENCV_DEPENDENCIES_MAP_${suffix}}set(OpenCV_${__ocv_lib}_LIBNAME_${suffix} \"${__libname}\")\n")
|
||||
|
@ -538,7 +538,7 @@ macro(ocv_add_perf_tests)
|
||||
endif()
|
||||
|
||||
add_executable(${the_target} ${OPENCV_PERF_${the_module}_SOURCES})
|
||||
target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${perf_deps})
|
||||
target_link_libraries(${the_target} ${OPENCV_MODULE_${the_module}_DEPS} ${perf_deps} ${OPENCV_LINKER_LIBS})
|
||||
|
||||
# Additional target properties
|
||||
set_target_properties(${the_target} PROPERTIES
|
||||
@ -588,7 +588,7 @@ macro(ocv_add_accuracy_tests)
|
||||
endif()
|
||||
|
||||
add_executable(${the_target} ${OPENCV_TEST_${the_module}_SOURCES})
|
||||
target_link_libraries(${the_target} ${OPENCV_LINKER_LIBS} ${test_deps})
|
||||
target_link_libraries(${the_target} ${OPENCV_MODULE_${the_module}_DEPS} ${test_deps} ${OPENCV_LINKER_LIBS})
|
||||
|
||||
# Additional target properties
|
||||
set_target_properties(${the_target} PROPERTIES
|
||||
|
@ -1,28 +1,13 @@
|
||||
SET(OPENCV_VERSION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/modules/core/include/opencv2/core/version.hpp")
|
||||
FILE(STRINGS "${OPENCV_VERSION_FILE}" OPENCV_VERSION_PARTS REGEX "#define CV_.+OR_VERSION[ ]+[0-9]+" )
|
||||
|
||||
string(REGEX REPLACE ".+CV_MAJOR_VERSION[ ]+([0-9]+).*" "\\1" OPENCV_VERSION_MAJOR "${OPENCV_VERSION_PARTS}")
|
||||
string(REGEX REPLACE ".+CV_MINOR_VERSION[ ]+([0-9]+).*" "\\1" OPENCV_VERSION_MINOR "${OPENCV_VERSION_PARTS}")
|
||||
string(REGEX REPLACE ".+CV_SUBMINOR_VERSION[ ]+([0-9]+).*" "\\1" OPENCV_VERSION_PATCH "${OPENCV_VERSION_PARTS}")
|
||||
set(OPENCV_VERSION "${OPENCV_VERSION_MAJOR}.${OPENCV_VERSION_MINOR}.${OPENCV_VERSION_PATCH}")
|
||||
|
||||
set(OPENCV_VERSION "${OPENCV_VERSION_MAJOR}.${OPENCV_VERSION_MINOR}.${OPENCV_VERSION_PATCH}")
|
||||
set(OPENCV_SOVERSION "${OPENCV_VERSION_MAJOR}.${OPENCV_VERSION_MINOR}")
|
||||
|
||||
# create a dependency on version file
|
||||
# we never use output of the following command but cmake will rerun automatically if the version file changes
|
||||
configure_file("${OPENCV_VERSION_FILE}" "${CMAKE_BINARY_DIR}/junk/version.junk" COPYONLY)
|
||||
|
||||
if(WIN32)
|
||||
# Postfix of DLLs:
|
||||
set(OPENCV_DLLVERSION "${OPENCV_VERSION_MAJOR}${OPENCV_VERSION_MINOR}${OPENCV_VERSION_PATCH}")
|
||||
set(OPENCV_DEBUG_POSTFIX d)
|
||||
else()
|
||||
# Postfix of so's:
|
||||
set(OPENCV_DLLVERSION "")
|
||||
set(OPENCV_DEBUG_POSTFIX)
|
||||
endif()
|
||||
|
||||
#name mangling
|
||||
set(OPENCV_INCLUDE_PREFIX include)
|
||||
if(INSTALL_TO_MANGLED_PATHS)
|
||||
set(OPENCV_INCLUDE_PREFIX include/opencv-${OPENCV_VERSION})
|
||||
endif()
|
||||
|
@ -139,7 +139,7 @@ string fromUtf16(const WString& str)
|
||||
{
|
||||
cv::AutoBuffer<char> _buf(str.size()*4 + 1);
|
||||
char* buf = _buf;
|
||||
|
||||
|
||||
size_t sz = wcstombs(buf, str.c_str(), str.size());
|
||||
if( sz == (size_t)-1 )
|
||||
return string();
|
||||
@ -151,7 +151,7 @@ WString toUtf16(const string& str)
|
||||
{
|
||||
cv::AutoBuffer<wchar_t> _buf(str.size() + 1);
|
||||
wchar_t* buf = _buf;
|
||||
|
||||
|
||||
size_t sz = mbstowcs(buf, str.c_str(), str.size());
|
||||
if( sz == (size_t)-1 )
|
||||
return WString();
|
||||
@ -753,7 +753,7 @@ cvGetFileNodeFromSeq( CvFileStorage* fs,
|
||||
|
||||
value = (CvFileNode*)cvGetSeqElem( seq, index, 0 );
|
||||
|
||||
|
||||
|
||||
|
||||
return value;
|
||||
}*/
|
||||
@ -852,12 +852,14 @@ icvProcessSpecialDouble( CvFileStorage* fs, char* buf, double* value, char** end
|
||||
if( c != '.' )
|
||||
CV_PARSE_ERROR( "Bad format of floating-point constant" );
|
||||
|
||||
union{double d; uint64 i;} v;
|
||||
if( toupper(buf[1]) == 'I' && toupper(buf[2]) == 'N' && toupper(buf[3]) == 'F' )
|
||||
*(uint64*)value = ((uint64)inf_hi << 32);
|
||||
v.i = (uint64)inf_hi << 32;
|
||||
else if( toupper(buf[1]) == 'N' && toupper(buf[2]) == 'A' && toupper(buf[3]) == 'N' )
|
||||
*(uint64*)value = (uint64)-1;
|
||||
v.i = (uint64)-1;
|
||||
else
|
||||
CV_PARSE_ERROR( "Bad format of floating-point constant" );
|
||||
*value = v.d;
|
||||
|
||||
*endptr = buf + 4;
|
||||
}
|
||||
@ -2018,7 +2020,7 @@ icvXMLParseTag( CvFileStorage* fs, char* ptr, CvStringHashNode** _tag,
|
||||
|
||||
if( *ptr == '\0' )
|
||||
CV_PARSE_ERROR( "Preliminary end of the stream" );
|
||||
|
||||
|
||||
if( *ptr != '<' )
|
||||
CV_PARSE_ERROR( "Tag should start with \'<\'" );
|
||||
|
||||
@ -2615,7 +2617,7 @@ cvOpenFileStorage( const char* filename, CvMemStorage* dststorage, int flags, co
|
||||
|
||||
fs->filename = (char*)cvMemStorageAlloc( fs->memstorage, fnamelen+1 );
|
||||
strcpy( fs->filename, filename );
|
||||
|
||||
|
||||
char* dot_pos = strrchr(fs->filename, '.');
|
||||
char compression = '\0';
|
||||
|
||||
@ -2684,7 +2686,7 @@ cvOpenFileStorage( const char* filename, CvMemStorage* dststorage, int flags, co
|
||||
strcmp( encoding, "utf-16" ) == 0 ||
|
||||
strcmp( encoding, "Utf-16" ) == 0 )
|
||||
CV_Error( CV_StsBadArg, "UTF-16 XML encoding is not supported! Use 8-bit encoding\n");
|
||||
|
||||
|
||||
CV_Assert( strlen(encoding) < 1000 );
|
||||
char buf[1100];
|
||||
sprintf(buf, "<?xml version=\"1.0\" encoding=\"%s\"?>\n", encoding);
|
||||
@ -3443,12 +3445,12 @@ icvReadMat( CvFileStorage* fs, CvFileNode* node )
|
||||
data = cvGetFileNodeByName( fs, node, "data" );
|
||||
if( !data )
|
||||
CV_Error( CV_StsError, "The matrix data is not found in file storage" );
|
||||
|
||||
|
||||
int nelems = icvFileNodeSeqLen( data );
|
||||
if( nelems > 0 && nelems != rows*cols*CV_MAT_CN(elem_type) )
|
||||
CV_Error( CV_StsUnmatchedSizes,
|
||||
"The matrix size does not match to the number of stored elements" );
|
||||
|
||||
|
||||
if( nelems > 0 )
|
||||
{
|
||||
mat = cvCreateMat( rows, cols, elem_type );
|
||||
@ -3533,18 +3535,18 @@ icvReadMatND( CvFileStorage* fs, CvFileNode* node )
|
||||
data = cvGetFileNodeByName( fs, node, "data" );
|
||||
if( !data )
|
||||
CV_Error( CV_StsError, "The matrix data is not found in file storage" );
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
for( total_size = CV_MAT_CN(elem_type), i = 0; i < dims; i++ )
|
||||
total_size *= sizes[i];
|
||||
|
||||
|
||||
int nelems = icvFileNodeSeqLen( data );
|
||||
|
||||
|
||||
if( nelems > 0 && nelems != total_size )
|
||||
CV_Error( CV_StsUnmatchedSizes,
|
||||
"The matrix size does not match to the number of stored elements" );
|
||||
|
||||
|
||||
if( nelems > 0 )
|
||||
{
|
||||
mat = cvCreateMatND( dims, sizes, elem_type );
|
||||
@ -4006,8 +4008,8 @@ icvWriteSeq( CvFileStorage* fs, const char* name,
|
||||
cvWriteInt( fs, "level", level );
|
||||
|
||||
dt = icvGetFormat( seq, "dt", &attr, 0, dt_buf );
|
||||
|
||||
strcpy(buf, "");
|
||||
|
||||
strcpy(buf, "");
|
||||
if( CV_IS_SEQ_CLOSED(seq) )
|
||||
strcat(buf, " closed");
|
||||
if( CV_IS_SEQ_HOLE(seq) )
|
||||
@ -4016,11 +4018,11 @@ icvWriteSeq( CvFileStorage* fs, const char* name,
|
||||
strcat(buf, " curve");
|
||||
if( CV_SEQ_ELTYPE(seq) == 0 && seq->elem_size != 1 )
|
||||
strcat(buf, " untyped");
|
||||
|
||||
|
||||
cvWriteString( fs, "flags", buf + (buf[0] ? 1 : 0), 1 );
|
||||
|
||||
|
||||
cvWriteInt( fs, "count", seq->total );
|
||||
|
||||
|
||||
cvWriteString( fs, "dt", dt, 0 );
|
||||
|
||||
icvWriteHeaderData( fs, seq, &attr, sizeof(CvSeq) );
|
||||
@ -4102,7 +4104,7 @@ icvReadSeq( CvFileStorage* fs, CvFileNode* node )
|
||||
CV_Error( CV_StsError, "Some of essential sequence attributes are absent" );
|
||||
|
||||
flags = CV_SEQ_MAGIC_VAL;
|
||||
|
||||
|
||||
if( cv_isdigit(flags_str[0]) )
|
||||
{
|
||||
const int OLD_SEQ_ELTYPE_BITS = 9;
|
||||
@ -4113,7 +4115,7 @@ icvReadSeq( CvFileStorage* fs, CvFileNode* node )
|
||||
const int OLD_SEQ_FLAG_SHIFT = OLD_SEQ_KIND_BITS + OLD_SEQ_ELTYPE_BITS;
|
||||
const int OLD_SEQ_FLAG_CLOSED = 1 << OLD_SEQ_FLAG_SHIFT;
|
||||
const int OLD_SEQ_FLAG_HOLE = 8 << OLD_SEQ_FLAG_SHIFT;
|
||||
|
||||
|
||||
int flags0 = (int)strtol( flags_str, &endptr, 16 );
|
||||
if( endptr == flags_str || (flags0 & CV_MAGIC_MASK) != CV_SEQ_MAGIC_VAL )
|
||||
CV_Error( CV_StsError, "The sequence flags are invalid" );
|
||||
@ -4471,14 +4473,14 @@ icvReadGraph( CvFileStorage* fs, CvFileNode* node )
|
||||
CV_Error( CV_StsError, "Some of essential graph attributes are absent" );
|
||||
|
||||
flags = CV_SET_MAGIC_VAL + CV_GRAPH;
|
||||
|
||||
|
||||
if( isxdigit(flags_str[0]) )
|
||||
{
|
||||
const int OLD_SEQ_ELTYPE_BITS = 9;
|
||||
const int OLD_SEQ_KIND_BITS = 3;
|
||||
const int OLD_SEQ_FLAG_SHIFT = OLD_SEQ_KIND_BITS + OLD_SEQ_ELTYPE_BITS;
|
||||
const int OLD_GRAPH_FLAG_ORIENTED = 1 << OLD_SEQ_FLAG_SHIFT;
|
||||
|
||||
|
||||
int flags0 = (int)strtol( flags_str, &endptr, 16 );
|
||||
if( endptr == flags_str || (flags0 & CV_MAGIC_MASK) != CV_SET_MAGIC_VAL )
|
||||
CV_Error( CV_StsError, "The sequence flags are invalid" );
|
||||
@ -4780,8 +4782,8 @@ cvFindType( const char* type_name )
|
||||
if (type_name)
|
||||
for( info = CvType::first; info != 0; info = info->next )
|
||||
if( strcmp( info->type_name, type_name ) == 0 )
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
return info;
|
||||
}
|
||||
|
||||
@ -4978,13 +4980,13 @@ stop_search:
|
||||
|
||||
if( _real_name)
|
||||
{
|
||||
if (real_name)
|
||||
{
|
||||
*_real_name = (const char*)cvAlloc(strlen(real_name));
|
||||
memcpy((void*)*_real_name, real_name, strlen(real_name));
|
||||
} else {
|
||||
*_real_name = 0;
|
||||
}
|
||||
if (real_name)
|
||||
{
|
||||
*_real_name = (const char*)cvAlloc(strlen(real_name));
|
||||
memcpy((void*)*_real_name, real_name, strlen(real_name));
|
||||
} else {
|
||||
*_real_name = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return ptr;
|
||||
@ -5150,7 +5152,7 @@ FileNode FileStorage::operator[](const string& nodename) const
|
||||
FileNode FileStorage::operator[](const char* nodename) const
|
||||
{
|
||||
return FileNode(fs, cvGetFileNodeByName(fs, 0, nodename));
|
||||
}
|
||||
}
|
||||
|
||||
FileNode FileNode::operator[](const string& nodename) const
|
||||
{
|
||||
@ -5167,13 +5169,13 @@ FileNode FileNode::operator[](int i) const
|
||||
return isSeq() ? FileNode(fs, (CvFileNode*)cvGetSeqElem(node->data.seq, i)) :
|
||||
i == 0 ? *this : FileNode();
|
||||
}
|
||||
|
||||
|
||||
string FileNode::name() const
|
||||
{
|
||||
const char* str;
|
||||
return !node || (str = cvGetFileNodeName(node)) == 0 ? string() : string(str);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void* FileNode::readObj() const
|
||||
{
|
||||
if( !fs || !node )
|
||||
@ -5294,7 +5296,7 @@ FileNodeIterator& FileNodeIterator::readRaw( const string& fmt, uchar* vec, size
|
||||
getElemSize( fmt, elem_size, cn );
|
||||
CV_Assert( elem_size > 0 );
|
||||
size_t count = std::min(remaining, maxCount);
|
||||
|
||||
|
||||
if( reader.seq )
|
||||
{
|
||||
cvReadRawDataSlice( fs, &reader, (int)count, vec, fmt.c_str() );
|
||||
@ -5309,7 +5311,7 @@ FileNodeIterator& FileNodeIterator::readRaw( const string& fmt, uchar* vec, size
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void write( FileStorage& fs, const string& name, int value )
|
||||
{ cvWriteInt( *fs, name.size() ? name.c_str() : 0, value ); }
|
||||
|
||||
@ -5332,9 +5334,9 @@ void writeScalar(FileStorage& fs, double value )
|
||||
{ cvWriteReal( *fs, 0, value ); }
|
||||
|
||||
void writeScalar(FileStorage& fs, const string& value )
|
||||
{ cvWriteString( *fs, 0, value.c_str() ); }
|
||||
{ cvWriteString( *fs, 0, value.c_str() ); }
|
||||
|
||||
|
||||
|
||||
void write( FileStorage& fs, const string& name, const Mat& value )
|
||||
{
|
||||
if( value.dims <= 2 )
|
||||
@ -5348,25 +5350,25 @@ void write( FileStorage& fs, const string& name, const Mat& value )
|
||||
cvWrite( *fs, name.size() ? name.c_str() : 0, &mat );
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: the 4 functions below need to be implemented more efficiently
|
||||
|
||||
// TODO: the 4 functions below need to be implemented more efficiently
|
||||
void write( FileStorage& fs, const string& name, const SparseMat& value )
|
||||
{
|
||||
Ptr<CvSparseMat> mat = (CvSparseMat*)value;
|
||||
cvWrite( *fs, name.size() ? name.c_str() : 0, mat );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
WriteStructContext::WriteStructContext(FileStorage& _fs, const string& name,
|
||||
int flags, const string& typeName) : fs(&_fs)
|
||||
{
|
||||
cvStartWriteStruct(**fs, !name.empty() ? name.c_str() : 0, flags,
|
||||
!typeName.empty() ? typeName.c_str() : 0);
|
||||
}
|
||||
|
||||
WriteStructContext::~WriteStructContext() { cvEndWriteStruct(**fs); }
|
||||
|
||||
|
||||
WriteStructContext::~WriteStructContext() { cvEndWriteStruct(**fs); }
|
||||
|
||||
|
||||
void read( const FileNode& node, Mat& mat, const Mat& default_mat )
|
||||
{
|
||||
if( node.empty() )
|
||||
@ -5391,7 +5393,7 @@ void read( const FileNode& node, Mat& mat, const Mat& default_mat )
|
||||
CV_Error(CV_StsBadArg, "Unknown array type");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void read( const FileNode& node, SparseMat& mat, const SparseMat& default_mat )
|
||||
{
|
||||
if( node.empty() )
|
||||
@ -5403,7 +5405,7 @@ void read( const FileNode& node, SparseMat& mat, const SparseMat& default_mat )
|
||||
CV_Assert(CV_IS_SPARSE_MAT(m));
|
||||
SparseMat(m).copyTo(mat);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/* End of file. */
|
||||
|
@ -517,7 +517,7 @@ inRangeS_(const _Tp* src, const _WTp* a, const _WTp* b, uchar* dst, size_t total
|
||||
for( i = 0; i < total; i++ )
|
||||
{
|
||||
_Tp val = src[i*cn];
|
||||
dst[i] = a[0] <= val && val <= b[0] ? 255 : 0;
|
||||
dst[i] = (a[0] <= val && val <= b[0]) ? uchar(255) : 0;
|
||||
}
|
||||
for( c = 1; c < cn; c++ )
|
||||
{
|
||||
@ -609,10 +609,10 @@ static void inRangeS(const Mat& src, const Scalar& lb, const Scalar& rb, Mat& ds
|
||||
size_t total = planes[0].total();
|
||||
size_t i, nplanes = it.nplanes;
|
||||
int depth = src.depth(), cn = src.channels();
|
||||
double lbuf[4], rbuf[4];
|
||||
union { double d[4]; float f[4]; int i[4];} lbuf, rbuf;
|
||||
int wtype = CV_MAKETYPE(depth <= CV_32S ? CV_32S : depth, cn);
|
||||
scalarToRawData(lb, lbuf, wtype, cn);
|
||||
scalarToRawData(rb, rbuf, wtype, cn);
|
||||
scalarToRawData(lb, lbuf.d, wtype, cn);
|
||||
scalarToRawData(rb, rbuf.d, wtype, cn);
|
||||
|
||||
for( i = 0; i < nplanes; i++, ++it )
|
||||
{
|
||||
@ -622,25 +622,25 @@ static void inRangeS(const Mat& src, const Scalar& lb, const Scalar& rb, Mat& ds
|
||||
switch( depth )
|
||||
{
|
||||
case CV_8U:
|
||||
inRangeS_((const uchar*)sptr, (const int*)lbuf, (const int*)rbuf, dptr, total, cn);
|
||||
inRangeS_((const uchar*)sptr, lbuf.i, rbuf.i, dptr, total, cn);
|
||||
break;
|
||||
case CV_8S:
|
||||
inRangeS_((const schar*)sptr, (const int*)lbuf, (const int*)rbuf, dptr, total, cn);
|
||||
inRangeS_((const schar*)sptr, lbuf.i, rbuf.i, dptr, total, cn);
|
||||
break;
|
||||
case CV_16U:
|
||||
inRangeS_((const ushort*)sptr, (const int*)lbuf, (const int*)rbuf, dptr, total, cn);
|
||||
inRangeS_((const ushort*)sptr, lbuf.i, rbuf.i, dptr, total, cn);
|
||||
break;
|
||||
case CV_16S:
|
||||
inRangeS_((const short*)sptr, (const int*)lbuf, (const int*)rbuf, dptr, total, cn);
|
||||
inRangeS_((const short*)sptr, lbuf.i, rbuf.i, dptr, total, cn);
|
||||
break;
|
||||
case CV_32S:
|
||||
inRangeS_((const int*)sptr, (const int*)lbuf, (const int*)rbuf, dptr, total, cn);
|
||||
inRangeS_((const int*)sptr, lbuf.i, rbuf.i, dptr, total, cn);
|
||||
break;
|
||||
case CV_32F:
|
||||
inRangeS_((const float*)sptr, (const float*)lbuf, (const float*)rbuf, dptr, total, cn);
|
||||
inRangeS_((const float*)sptr, lbuf.f, rbuf.f, dptr, total, cn);
|
||||
break;
|
||||
case CV_64F:
|
||||
inRangeS_((const double*)sptr, (const double*)lbuf, (const double*)rbuf, dptr, total, cn);
|
||||
inRangeS_((const double*)sptr, lbuf.d, rbuf.d, dptr, total, cn);
|
||||
break;
|
||||
default:
|
||||
CV_Error(CV_StsUnsupportedFormat, "");
|
||||
|
@ -124,6 +124,7 @@ struct CvSurfHF
|
||||
{
|
||||
int p0, p1, p2, p3;
|
||||
float w;
|
||||
CvSurfHF(): p0(0),p1(0),p2(0),p3(0),w(0) {}
|
||||
};
|
||||
|
||||
CV_INLINE float
|
||||
|
@ -244,7 +244,7 @@ if(IOS)
|
||||
set(HIGHGUI_LIBRARIES ${HIGHGUI_LIBRARIES} bz2 "-framework QuartzCore" "-framework CoreFoundation" "-framework ImageIO" "-framework CoreGraphics" "-framework AVFoundation")
|
||||
endif()
|
||||
|
||||
if(MINGW)
|
||||
if(WIN32)
|
||||
link_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/lib")
|
||||
include_directories("${CMAKE_CURRENT_SOURCE_DIR}/../../3rdparty/include")#for directshow
|
||||
endif()
|
||||
@ -270,5 +270,5 @@ set_target_properties(${the_module} PROPERTIES LINK_INTERFACE_LIBRARIES "")
|
||||
|
||||
ocv_add_precompiled_headers(${the_module})
|
||||
|
||||
ocv_add_accuracy_tests(highgui opencv_imgproc)
|
||||
ocv_add_accuracy_tests()
|
||||
ocv_add_perf_tests()
|
||||
|
@ -586,7 +586,7 @@ icvCreateContourTree( const CvSeq * contour, CvMemStorage * storage,
|
||||
/* CV_WRITE_SEQ_ELEM (tree_one, start_writer); */
|
||||
i_tree++;
|
||||
/* create Sequence hearder */
|
||||
*((CvSeq **) tree) = cvEndWriteSeq( &writer );
|
||||
*tree = (CvContourTree*)cvEndWriteSeq( &writer );
|
||||
/* write points for the main segment into sequence header */
|
||||
(*tree)->p1 = pt1[0];
|
||||
|
||||
|
@ -332,7 +332,6 @@ int icvComputeCoeffForStereo( CvStereoCamera* stereoCamera)
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*--------------------------------------------------------------------------------------*/
|
||||
int icvComCoeffForLine( CvPoint2D64d point1,
|
||||
CvPoint2D64d point2,
|
||||
@ -350,33 +349,33 @@ int icvComCoeffForLine( CvPoint2D64d point1,
|
||||
/* Get direction for all points */
|
||||
/* Direction for camera 1 */
|
||||
|
||||
double direct1[3];
|
||||
double direct2[3];
|
||||
double camPoint1[3];
|
||||
CvPoint3D64f direct1;
|
||||
CvPoint3D64f direct2;
|
||||
CvPoint3D64f camPoint1;
|
||||
|
||||
double directS3[3];
|
||||
double directS4[3];
|
||||
double direct3[3];
|
||||
double direct4[3];
|
||||
double camPoint2[3];
|
||||
CvPoint3D64f directS3;
|
||||
CvPoint3D64f directS4;
|
||||
CvPoint3D64f direct3;
|
||||
CvPoint3D64f direct4;
|
||||
CvPoint3D64f camPoint2;
|
||||
|
||||
icvGetDirectionForPoint( point1,
|
||||
camMatr1,
|
||||
(CvPoint3D64d*)direct1);
|
||||
&direct1);
|
||||
|
||||
icvGetDirectionForPoint( point2,
|
||||
camMatr1,
|
||||
(CvPoint3D64d*)direct2);
|
||||
&direct2);
|
||||
|
||||
/* Direction for camera 2 */
|
||||
|
||||
icvGetDirectionForPoint( point3,
|
||||
camMatr2,
|
||||
(CvPoint3D64d*)directS3);
|
||||
&directS3);
|
||||
|
||||
icvGetDirectionForPoint( point4,
|
||||
camMatr2,
|
||||
(CvPoint3D64d*)directS4);
|
||||
&directS4);
|
||||
|
||||
/* Create convertion for camera 2: two direction and camera point */
|
||||
|
||||
@ -390,30 +389,30 @@ int icvComCoeffForLine( CvPoint2D64d point1,
|
||||
convRotMatr,
|
||||
convTransVect);
|
||||
|
||||
double zeroVect[3];
|
||||
zeroVect[0] = zeroVect[1] = zeroVect[2] = 0.0;
|
||||
camPoint1[0] = camPoint1[1] = camPoint1[2] = 0.0;
|
||||
CvPoint3D64f zeroVect;
|
||||
zeroVect.x = zeroVect.y = zeroVect.z = 0.0;
|
||||
camPoint1.x = camPoint1.y = camPoint1.z = 0.0;
|
||||
|
||||
icvConvertPointSystem(*((CvPoint3D64d*)directS3),(CvPoint3D64d*)direct3,convRotMatr,convTransVect);
|
||||
icvConvertPointSystem(*((CvPoint3D64d*)directS4),(CvPoint3D64d*)direct4,convRotMatr,convTransVect);
|
||||
icvConvertPointSystem(*((CvPoint3D64d*)zeroVect),(CvPoint3D64d*)camPoint2,convRotMatr,convTransVect);
|
||||
icvConvertPointSystem(directS3,&direct3,convRotMatr,convTransVect);
|
||||
icvConvertPointSystem(directS4,&direct4,convRotMatr,convTransVect);
|
||||
icvConvertPointSystem(zeroVect,&camPoint2,convRotMatr,convTransVect);
|
||||
|
||||
double pointB[3];
|
||||
CvPoint3D64f pointB;
|
||||
|
||||
int postype = 0;
|
||||
|
||||
/* Changed order */
|
||||
/* Compute point B: xB,yB,zB */
|
||||
icvGetCrossLines(*((CvPoint3D64d*)camPoint1),*((CvPoint3D64d*)direct2),
|
||||
*((CvPoint3D64d*)camPoint2),*((CvPoint3D64d*)direct3),
|
||||
(CvPoint3D64d*)pointB);
|
||||
icvGetCrossLines(camPoint1,direct2,
|
||||
camPoint2,direct3,
|
||||
&pointB);
|
||||
|
||||
if( pointB[2] < 0 )/* If negative use other lines for cross */
|
||||
if( pointB.z < 0 )/* If negative use other lines for cross */
|
||||
{
|
||||
postype = 1;
|
||||
icvGetCrossLines(*((CvPoint3D64d*)camPoint1),*((CvPoint3D64d*)direct1),
|
||||
*((CvPoint3D64d*)camPoint2),*((CvPoint3D64d*)direct4),
|
||||
(CvPoint3D64d*)pointB);
|
||||
icvGetCrossLines(camPoint1,direct1,
|
||||
camPoint2,direct4,
|
||||
&pointB);
|
||||
}
|
||||
|
||||
CvPoint3D64d pointNewA;
|
||||
@ -424,27 +423,27 @@ int icvComCoeffForLine( CvPoint2D64d point1,
|
||||
|
||||
if( postype == 0 )
|
||||
{
|
||||
icvGetSymPoint3D( *((CvPoint3D64d*)camPoint1),
|
||||
*((CvPoint3D64d*)direct1),
|
||||
*((CvPoint3D64d*)pointB),
|
||||
icvGetSymPoint3D( camPoint1,
|
||||
direct1,
|
||||
pointB,
|
||||
&pointNewA);
|
||||
|
||||
icvGetSymPoint3D( *((CvPoint3D64d*)camPoint2),
|
||||
*((CvPoint3D64d*)direct4),
|
||||
*((CvPoint3D64d*)pointB),
|
||||
icvGetSymPoint3D( camPoint2,
|
||||
direct4,
|
||||
pointB,
|
||||
&pointNewC);
|
||||
}
|
||||
else
|
||||
{/* In this case we must change cameras */
|
||||
*needSwapCamera = 1;
|
||||
icvGetSymPoint3D( *((CvPoint3D64d*)camPoint2),
|
||||
*((CvPoint3D64d*)direct3),
|
||||
*((CvPoint3D64d*)pointB),
|
||||
icvGetSymPoint3D( camPoint2,
|
||||
direct3,
|
||||
pointB,
|
||||
&pointNewA);
|
||||
|
||||
icvGetSymPoint3D( *((CvPoint3D64d*)camPoint1),
|
||||
*((CvPoint3D64d*)direct2),
|
||||
*((CvPoint3D64d*)pointB),
|
||||
icvGetSymPoint3D( camPoint1,
|
||||
direct2,
|
||||
pointB,
|
||||
&pointNewC);
|
||||
}
|
||||
|
||||
@ -453,9 +452,9 @@ int icvComCoeffForLine( CvPoint2D64d point1,
|
||||
|
||||
double x1,y1,z1;
|
||||
|
||||
x1 = camPoint1[0];
|
||||
y1 = camPoint1[1];
|
||||
z1 = camPoint1[2];
|
||||
x1 = camPoint1.x;
|
||||
y1 = camPoint1.y;
|
||||
z1 = camPoint1.z;
|
||||
|
||||
double xA,yA,zA;
|
||||
double xB,yB,zB;
|
||||
@ -465,9 +464,9 @@ int icvComCoeffForLine( CvPoint2D64d point1,
|
||||
yA = pointNewA.y;
|
||||
zA = pointNewA.z;
|
||||
|
||||
xB = pointB[0];
|
||||
yB = pointB[1];
|
||||
zB = pointB[2];
|
||||
xB = pointB.x;
|
||||
yB = pointB.y;
|
||||
zB = pointB.z;
|
||||
|
||||
xC = pointNewC.x;
|
||||
yC = pointNewC.y;
|
||||
@ -479,8 +478,8 @@ int icvComCoeffForLine( CvPoint2D64d point1,
|
||||
gamma = len2 / len1;
|
||||
|
||||
icvComputeStereoLineCoeffs( pointNewA,
|
||||
*((CvPoint3D64d*)pointB),
|
||||
*((CvPoint3D64d*)camPoint1),
|
||||
pointB,
|
||||
camPoint1,
|
||||
gamma,
|
||||
coeffs);
|
||||
|
||||
|
@ -834,8 +834,8 @@ void TestBase::reportMetrics(bool toJUnitXML)
|
||||
break;
|
||||
};
|
||||
|
||||
LOGD("bytesIn =%11lu", m.bytesIn);
|
||||
LOGD("bytesOut =%11lu", m.bytesOut);
|
||||
LOGD("bytesIn =%11lu", (unsigned long)m.bytesIn);
|
||||
LOGD("bytesOut =%11lu", (unsigned long)m.bytesOut);
|
||||
if (nIters == (unsigned int)-1 || m.terminationReason == performance_metrics::TERM_ITERATIONS)
|
||||
LOGD("samples =%11u", m.samples);
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user