X-Git-Url: https://vcs.maemo.org/git/?a=blobdiff_plain;f=interfaces%2Fswig%2Fpython%2Fpyhelpers.cpp;fp=interfaces%2Fswig%2Fpython%2Fpyhelpers.cpp;h=bbf8446ad537eed18b5bedde1eec9773471e7ed6;hb=80cd7b93506cc1926882d5fd08a2c74ee9359e29;hp=547abea215795dc30e642ae397c2922f85b1168e;hpb=467a270adf12425827305759c0c4ea8f5b2b3854;p=opencv diff --git a/interfaces/swig/python/pyhelpers.cpp b/interfaces/swig/python/pyhelpers.cpp index 547abea..bbf8446 100644 --- a/interfaces/swig/python/pyhelpers.cpp +++ b/interfaces/swig/python/pyhelpers.cpp @@ -82,42 +82,44 @@ PyObject * SWIG_AppendResult(PyObject * result, PyObject ** to_add, int num){ } template -std::ostream & cv_arr_write(std::ostream & out, T * data, int rows, int nch, int step){ - int i,j,k; - char * cdata = (char *) data; - std::string chdelim1="", chdelim2=""; - - // only output channel parens if > 1 - if(nch>1){ - chdelim1="("; - chdelim2=")"; - } - - out<<"["; - for(i=0; i 1 + if(nch>1){ + chdelim1="("; + chdelim2=")"; + } - // first element - out<type); int depth = CV_MAT_DEPTH(mat->type); int step = MAX(mat->step, cn*mat->cols*CV_ELEM_SIZE(depth)); - std::ostringstream str; + switch(depth){ case CV_8U: - cv_arr_write(str, (uchar *)mat->data.ptr, mat->rows, cn, step); + cv_arr_write(stdout, "%u", (uchar *)mat->data.ptr, mat->rows, cn, step); break; case CV_8S: - cv_arr_write(str, (char *)mat->data.ptr, mat->rows, cn, step); + cv_arr_write(stdout, "%d", (char *)mat->data.ptr, mat->rows, cn, step); break; case CV_16U: - cv_arr_write(str, (ushort *)mat->data.ptr, mat->rows, cn, step); + cv_arr_write(stdout, "%u", (ushort *)mat->data.ptr, mat->rows, cn, step); break; case CV_16S: - cv_arr_write(str, (short *)mat->data.ptr, mat->rows, cn, step); + cv_arr_write(stdout, "%d", (short *)mat->data.ptr, mat->rows, cn, step); break; case CV_32S: - cv_arr_write(str, (int *)mat->data.ptr, mat->rows, cn, step); + cv_arr_write(stdout, "%d", (int *)mat->data.ptr, mat->rows, cn, step); break; case CV_32F: - cv_arr_write(str, (float *)mat->data.ptr, mat->rows, cn, step); + cv_arr_write(stdout, "%f", (float *)mat->data.ptr, mat->rows, cn, step); break; case CV_64F: - cv_arr_write(str, (double *)mat->data.ptr, mat->rows, cn, step); + cv_arr_write(stdout, "%g", (double *)mat->data.ptr, mat->rows, cn, step); break; default: CV_ERROR( CV_StsError, "Unknown element type"); break; } - std::cout<