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

时间:2016-01-16 13:34:02

标签: c++ opencv

我试图将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< = roi.x&& 0< = roi.width&& roi.x   + roi.width< = m.cols&& 0< = roi.y&& 0< = roi.height&& roi.y + roi.height< = m.rows)in cv :: Mat :: Mat,file   C:\建立\ master_PackSlave-Win64的-VC12共享\的OpenCV \模块\   core \ src \ matrix.cpp,第495行

1 个答案:

答案 0 :(得分:0)

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

// 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();