Path: blob/master/modules/core/src/bindings_utils.cpp
16337 views
// This file is part of OpenCV project.1// It is subject to the license terms in the LICENSE file found in the top-level directory2// of this distribution and at http://opencv.org/license.html.34#include "precomp.hpp"5#include "opencv2/core/bindings_utils.hpp"6#include <sstream>78namespace cv { namespace utils {910String dumpInputArray(InputArray argument)11{12if (&argument == &noArray())13return "InputArray: noArray()";14std::ostringstream ss;15ss << "InputArray:";16try {17do {18ss << (argument.empty() ? " empty()=true" : " empty()=false");19ss << cv::format(" kind=0x%08llx", (long long int)argument.kind());20ss << cv::format(" flags=0x%08llx", (long long int)argument.getFlags());21if (argument.getObj() == NULL)22{23ss << " obj=NULL";24break; // done25}26ss << cv::format(" total(-1)=%lld", (long long int)argument.total(-1));27ss << cv::format(" dims(-1)=%d", argument.dims(-1));28Size size = argument.size(-1);29ss << cv::format(" size(-1)=%dx%d", size.width, size.height);30ss << " type(-1)=" << cv::typeToString(argument.type(-1));31} while (0);32}33catch (...)34{35ss << " ERROR: exception occured, dump is non-complete"; // need to properly support different kinds36}37return ss.str();38}3940CV_EXPORTS_W String dumpInputArrayOfArrays(InputArrayOfArrays argument)41{42if (&argument == &noArray())43return "InputArrayOfArrays: noArray()";44std::ostringstream ss;45ss << "InputArrayOfArrays:";46try {47do {48ss << (argument.empty() ? " empty()=true" : " empty()=false");49ss << cv::format(" kind=0x%08llx", (long long int)argument.kind());50ss << cv::format(" flags=0x%08llx", (long long int)argument.getFlags());51if (argument.getObj() == NULL)52{53ss << " obj=NULL";54break; // done55}56ss << cv::format(" total(-1)=%lld", (long long int)argument.total(-1));57ss << cv::format(" dims(-1)=%d", argument.dims(-1));58Size size = argument.size(-1);59ss << cv::format(" size(-1)=%dx%d", size.width, size.height);60if (argument.total(-1) > 0)61{62ss << " type(0)=" << cv::typeToString(argument.type(0));63ss << cv::format(" dims(0)=%d", argument.dims(0));64size = argument.size(0);65ss << cv::format(" size(0)=%dx%d", size.width, size.height);66ss << " type(0)=" << cv::typeToString(argument.type(0));67}68} while (0);69}70catch (...)71{72ss << " ERROR: exception occured, dump is non-complete"; // need to properly support different kinds73}74return ss.str();75}7677CV_EXPORTS_W String dumpInputOutputArray(InputOutputArray argument)78{79if (&argument == &noArray())80return "InputOutputArray: noArray()";81std::ostringstream ss;82ss << "InputOutputArray:";83try {84do {85ss << (argument.empty() ? " empty()=true" : " empty()=false");86ss << cv::format(" kind=0x%08llx", (long long int)argument.kind());87ss << cv::format(" flags=0x%08llx", (long long int)argument.getFlags());88if (argument.getObj() == NULL)89{90ss << " obj=NULL";91break; // done92}93ss << cv::format(" total(-1)=%lld", (long long int)argument.total(-1));94ss << cv::format(" dims(-1)=%d", argument.dims(-1));95Size size = argument.size(-1);96ss << cv::format(" size(-1)=%dx%d", size.width, size.height);97ss << " type(-1)=" << cv::typeToString(argument.type(-1));98} while (0);99}100catch (...)101{102ss << " ERROR: exception occured, dump is non-complete"; // need to properly support different kinds103}104return ss.str();105}106107CV_EXPORTS_W String dumpInputOutputArrayOfArrays(InputOutputArrayOfArrays argument)108{109if (&argument == &noArray())110return "InputOutputArrayOfArrays: noArray()";111std::ostringstream ss;112ss << "InputOutputArrayOfArrays:";113try {114do {115ss << (argument.empty() ? " empty()=true" : " empty()=false");116ss << cv::format(" kind=0x%08llx", (long long int)argument.kind());117ss << cv::format(" flags=0x%08llx", (long long int)argument.getFlags());118if (argument.getObj() == NULL)119{120ss << " obj=NULL";121break; // done122}123ss << cv::format(" total(-1)=%lld", (long long int)argument.total(-1));124ss << cv::format(" dims(-1)=%d", argument.dims(-1));125Size size = argument.size(-1);126ss << cv::format(" size(-1)=%dx%d", size.width, size.height);127if (argument.total(-1) > 0)128{129ss << " type(0)=" << cv::typeToString(argument.type(0));130ss << cv::format(" dims(0)=%d", argument.dims(0));131size = argument.size(0);132ss << cv::format(" size(0)=%dx%d", size.width, size.height);133ss << " type(0)=" << cv::typeToString(argument.type(0));134}135} while (0);136}137catch (...)138{139ss << " ERROR: exception occured, dump is non-complete"; // need to properly support different kinds140}141return ss.str();142}143144}} // namespace145146147