Opencv 解决抛出 cv::Exception
Posted
技术标签:
【中文标题】Opencv 解决抛出 cv::Exception【英文标题】:Opencv solve throws cv::Exception 【发布时间】:2016-02-11 18:55:06 【问题描述】:在 Windows 10 上,运行 Visual Studio 2015。Opencv 3.0
使用 Opencv 首先关联两个图像并使用 matchTemplate 确定它们之间的转换。我想获得亚像素估计,所以我要从相关输出中输入一个 11X11 的值窗口,并将二次曲面拟合到这些点。
void Sector1::ResampSector(cv::Mat In, cv::Mat R, cv::Mat Out, cv::Point Loc)
// first get fractional offset
int lsq = 5;
// Ax^2 + B xy + Cy^2 + Dx +Ey + F = R
cv::setBreakOnError(true);
cv::Mat A( 121, 6, CV_32F);
cv::Mat B( 121, 1, CV_32F);
cv::Mat C (6, 1, CV_32F);
int L = 0;
for (int i = Loc.y-lsq; i <= Loc.y+lsq; i++)
for (int j = Loc.x-lsq; j <= Loc.x+lsq; j++)
A.at<float>(L, 0) = float(i*i);
A.at<float>(L, 1) = (float)i*j;
A.at<float>(L, 2) = (float)j*j;
A.at<float>(L, 3) = (float)i;
A.at<float>(L, 4) = (float)j;
A.at<float>(L, 5) = 1.f;
B.at<float>(L) = R.at<float>(i, j); // since is 3 band stuff ?
L++;
// for j
// for i
bool rc = cv::solve(A, B, C);
对 cv::solve 的调用返回 false,并且在任何图像矩阵或其他变量之外的同一地址处有两个 cv::Exceptions。我使用内存窗口查看了 A、B 和 C 的内容,它们看起来都是正确的。 A、B、C 结构看起来都是正确的。我试图进入解决方案,但我没有带有符号表的库。
任何线索我哪里出错了?进一步跟踪问题的建议?
【问题讨论】:
【参考方案1】:Lapack 抱怨默认方法不起作用。更正是将 flag=DECOMP_QR 作为第 4 个可选参数添加到 solve() 调用中
【讨论】:
以上是关于Opencv 解决抛出 cv::Exception的主要内容,如果未能解决你的问题,请参考以下文章
cvtColor 断言失败(使用 C++ 的 OpenCV)抛出实例 cv::exception
从 std::vector<int> 模糊 Mat 导致的错误指针:cv::Exception
OpenCV报错:color.hpp:253: error: (-215:Assertion failed)