Opencv错误:断言失败

Opencv Error:Assertion failed

本文关键字:失败 断言 错误 Opencv      更新时间:2023-10-16

我遇到以下问题-我试图运行以下代码,但遇到了这个问题:

OpenCV Error: Assertion failed (dims <= 2 && data && (unsigned)i0 < (unsigned)size.p[0] && (unsigned)(i1*DataType<_Tp>::channels) < (unsigned)(size.p[1]*channels()) && ((((sizeof(size_t)<<28)|0x8442211)
((DataType<_Tp>::depth) & ((1 << 3) - 1))*4) & 15) == elemSize1()) in unknown function, file C:opencv231buildincludeopencv2/core/mat.hpp, line 537.

代码:

    int l = (int)Lines.size();
    Mat sep_seam_map = Mat::zeros(n,l - 1, CV_32F);// initialize the seperating seam map of coordinates.

for (int k = 1; k < l - 1; k++){
    //apply constrained seam carving for each pair of text lines:
    int L_a = Lines[k].first.x;
    int L_b = Lines[k + 1].first.x;
    for (int row = 2; row < n; row++) {
        for (int col = L_a; col < L_b; col++) {
            //Defining the bounderies upon which to find the minimum value seams.
            int left = std::max(col - 1, L_a);
            int right = std::min(col + 1, L_b);
            double minpath,max;
            Mat last_row = energy_map.operator()(Range(row - 1, row), Range(left, right));
            minMaxLoc(last_row, &minpath, &max);
            std::cout << last_row << " " << " " << endl;
            std::cout << "minpath: "<<minpath << " " << " " << endl;

            //End Cases - 
            if (minpath == 0) {
                if (col > left)
                    energy_map.at<float>(row, col) = energy_map.at<float>(row - 1, right);
                if (col < right)
                    energy_map.at<float>(row, col) = energy_map.at<float>(row - 1, left);
            }
            else
                std::cout << energy_map.at<float>(row, col) = energy_map.at<double>(row, col) + minpath;
            }

        }

我读过以前关于这个错误的讨论,这是访问矩阵条目时出错的结果,但我似乎没有做错什么(但很明显我做错了什么…)如果有任何帮助,我会非常乐意。当做

好吧,所以我访问矩阵条目时出错了——我应该使用uchar作为模板来编辑条目。