我遇到以下问题-我正在尝试运行以下代码,但因这种磨损而迷迷糊糊:
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:\opencv231\build\include\opencv2/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作为模板来编辑条目。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句