繁体   English   中英

OpenCV解决抛出CV ::异常

[英]Opencv solve throws cv::Exception

在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结构都看起来正确。 我尝试着解决问题,但是我没有包含符号表的库。

有什么线索我错了吗? 有关进一步跟踪问题的建议?

Lapack抱怨默认方法无效。 纠正方法是将flag = DECOMP_QR添加为对solve()的调用的第四个可选参数

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM