尝试复制部分 OpenCV 矩阵时断言失败

Posted

技术标签:

【中文标题】尝试复制部分 OpenCV 矩阵时断言失败【英文标题】:Assertion failed when trying to copy part of OpenCV Matrix 【发布时间】:2016-01-16 13:34:01 【问题描述】:

我试图将 Mat 的一部分复制到其他矩阵,这是我的代码:

Mat OCRprocess;
OCRImage(Rect(plates[i].x, plates[i].y, plates[i].width, plates[i].height)).copyTo(OCRprocess);

ROI:x: 1200 y: 608 w: 356 h: 89(来自级联检测器的数据)

这是返回:

OpenCV 错误:断言失败 (0

【问题讨论】:

我认为你只需要熟悉你的调试器... 【参考方案1】:

在调用copyTo之前,需要初始化矩形大小相同的OcrProcess

// Your rect
Rect r(plates[i].x, plates[i].y, plates[i].width, plates[i].height);
// Initialize the destination image
Mat OCRprocess(r.height, r.width, OCRImage.type());
// Copy
OCRImage(Rect).copyTo(OCRprocess);

或者,更简单地说,使用clone

Mat OCRprocess = OCRImage(Rect(plates[i].x, plates[i].y, plates[i].width, plates[i].height)).clone();

【讨论】:

两个都测试过,还是一样的问题。 那么您还有另一个问题:您的矩形超出了图像边界。

以上是关于尝试复制部分 OpenCV 矩阵时断言失败的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV 错误:使用 calcHist 断言失败

使用 Opencv 时 C++ 调试断言失败

调试断言失败(无符号)(c+1)<= 256(在 VideoCapture::open [Qt Creator] 中)

OpenCV HOG+SVM:断言失败 checkDetectorSize()

(opencv) 调试断言失败,向量下标超出范围

java opencv错误内存不足和断言失败