Opencv solve throws cv::Exception
Opencv solve throws cv::Exception
在运行Visual Studio 2015的Windows 10上。 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::异常,这些异常位于任何图像矩阵或其他变量之外。 我使用内存窗口查看了 A、B 和 C 的内容,它们看起来都是正确的。 A,B,C结构看起来都是正确的。 我试图逐步解决,但我没有带有符号表的库。
知道我哪里出错了吗? 进一步跟踪问题的建议?
Lapack抱怨默认方法不起作用。 更正是将 flag=DECOMP_QR 作为调用 solve() 的第 4 个可选参数添加
相关文章:
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 概念中的cv限定符需要表达式参数列表
- 将CHW格式的浮点向量转换为cv::Mat
- 为重写std::exception的库生成swig接口时出错
- 错误的cv::face FacemarkLBF实例化
- 什么是 std::exception::what() 以及为什么要使用它?
- 如何检查给定的参数是否为 cv::noArray()?
- 开放 CV 中的动态内存分配,用于视频处理
- 链表"exception thrown"
- 如何在 opencv 中使用 cv::VideoCapture::waitAny()
- 为什么程序员同时使用 std::bad_alloc 和 std::exception.是否 std::例外 仅是不够的
- opencv cv::addText exception if no window
- 如何找出导致"cv::Exception at memory location"的原因?
- Opencv Simpleblobdetector示例草图抛出cv::exception(-231)
- Opencv solve throws cv::Exception
- openCV 中的 SVM 抛出"cv::Exception at memory location"
- 通过模糊 mat 从 std::vector: <int>cv::Exception 中获取错误指针
- OpenCV cv::findcontours StackOverflow Exception
- cvtColor 断言失败(带有 C++ 的 OpenCV )抛出一个实例 cv::exception
- Opencv PCA Microsoft c++ exception: cv::内存位置异常