Ask Your Question

Revision history [back]

OpenCV ref count: function returning cv::Mat?

I am tracing a strange bug in my very simple code, and I suspect that I am using cv::Mat in a wrong way, although with reference counting, there is not much that should go wrong.

My code is this:

cv::Mat rowwise_maximum(const cv::Mat& src, int32_t width)
{        
    cv::Mat dest = src.clone();

    for(int row = 0; row < dest.rows; ++row)
    {
        for(int col = 0; col < dest.cols; ++col)
        {
            dest.at< double >(row, col) = 0.5 * src.at< double >(row, col);
        }
    }

    std::cout << "ok" << std::endl;

    return dest;
}

// call
cv::Mat max_foo = rowwise_maximum(thresholded, 7);

I am pretty sure that the depth of src is CV_64F and therefore the way I use at is correct. I observe a program crash after leaving the program block calling this code, and the debugger displays max_foo.refcount to be 0.

I would expect it to be 1 ...

Can someone provide me a hint?