我试图将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行
答案 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();