Ask Your Question

manfeyn's profile - activity

2018-01-24 02:46:35 -0600 commented answer how to stream h264 video with rtsp in opencv- partially answered

It seems that the latest version of opencv(3.4) has fixed this problem. I met the same problem while using opencv 2.4.

2015-11-18 04:05:35 -0600 received badge  Scholar (source)
2015-11-17 08:09:52 -0600 answered a question Does accumulate() in OpenCV 3.0.0 support the 3d Mat?

I build the OpenCV 3.0.0 source codes and found the reason why the accumulate() threw an exception.

Mat::Size() is called in cv::accumulate():

// improc/src/accum.cpp
void cv::accumulate( InputArray _src, InputOutputArray _dst, InputArray _mask )
{
     ....
     Mat src = _src.getMat(), dst = _dst.getMat(), mask = _mask.getMat();
     ....
      Size size = src.size();
    ....
}

However, the Mat::MatSize::operator() does not support 3d matrix:

// opencv2/core/mat.inl.hpp
inline
Size MatSize::operator()() const
{
    CV_DbgAssert(p[-1] <= 2);
    return Size(p[1], p[0]);
}

So I guess the cv::accumulate() in OpenCV 3.0.0 does not support 3d matrix.

Please correct me if I am wrong.

2015-11-16 06:27:09 -0600 commented question MSER slower in 3.0.0 than 2.4.9

Maybe this one will help you: http://answers.opencv.org/question/67...

2015-11-16 01:55:35 -0600 received badge  Enthusiast
2015-11-14 10:51:13 -0600 received badge  Editor (source)
2015-11-14 10:50:30 -0600 asked a question Does accumulate() in OpenCV 3.0.0 support the 3d Mat?

Hi, guys.

I migrate opencv 3.0.0 recently. After the migration, the accumulate() in the following line throw an exception.

int sizes[] = {1, 512, 1024};

cv::Mat mat1(3, sizes, CV_32F, cv::Scalar(1);

cv::Mat mat2(mat.dims, mat1.row(0).sizes(), CV_32F, cv::Scalar(0));

for (int y = 0; y < 3; y ++) accumulate(mat1.row(y), mat2);

I changed the mat1's dimensions from 3 to 2 by squeeze() then there was no exception. Before the migration, the OpenCV's version is 2.4.9 and this codes works well.

I read the documentation of accumulate() in opencv 3.0.0. And it gives this function:

dst(x,y) = dst(x,y) + src(x,y) if mask != 0

Does this mean accumulate() in OpenCV 3.0.0 does not support 3d mat any more? What is the best practices if I want to accumulate the 3d Mat?

Thanks :)

Update: The matrix's dimension is 1x512x512. Then I used mat.squeeze() to get a 2d matrix to solve this problem. But I feel it's not efficient because the mat.squeeze() is called in the loop. I wonder if there is another way to solve this problem.

2015-11-11 22:15:54 -0600 commented question LINK4099:'opencv_ts300d.pdb' was not found

sigh. thanks for help.

2015-11-09 21:37:57 -0600 asked a question LINK4099:'opencv_ts300d.pdb' was not found

Hi, guys. I and got this warning:

opencv_ts300d.lib(ts.obj):-1: warning: LNK4099: PDB 'opencv_ts300d.pdb' was not found with 'opencv_ts300d.lib(ts.obj)' or at 'D:\Develop\SVR\ReleaseCode\SVRcode\QuickTesters\build-IOTest-Desktop_Qt_5_2_1_MSVC2012_OpenGL_64bit-Debug\debug\opencv_ts300d.pdb'; linking object as if no debug info

The comment of can’t find the pdb(opencv_world300d.pdb) sayed that "you have to build the source code to get the pdb file".

Instead of rebuild the source code, is there any better way to get the .pdb file?