断言ROI opencv失败

Assertion failed ROI opencv

本文关键字:失败 opencv ROI 断言      更新时间:2023-10-16

我使用visual studio 2012和opencv 3.0。我已经检查了几个关于这个问题的帖子,但当我运行以下代码时,我仍然得到断言失败错误-215:

IplImage * imageOriginal = cvLoadImage("road1.jpg");
int width = 0, height = 0;    
width = imageOriginal->width;
height = imageOriginal->height;
IplImage* img = cvCreateImage(cvGetSize(imageOriginal), imageOriginal->depth , 3);    
CvRect cropRect = cvRect(0, 0, width -10, height -10 ); // ROI in source image 
cvSetImageROI(imageOriginal, cropRect);
try {
  cvCopy(imageOriginal, img, NULL); // Copies only crop region
}
catch (cv::Exception& e) {
  cout << e.what() << endl;
}
cvResetImageROI(imageOriginal);
cvShowImage( "Original ROI", img);
waitKey();

如果我将矩形保留为全尺寸CvRect cropRect = cvRect(0, 0, width, height);,我不会出错。问题出在哪里?

您的代码来自opencv1.0。(那是很久以前的事了)

对于opencv3.0,请使用c++api:

#include <opencv2/core.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>
using namespace cv;
int main() {
    Mat img = imread("road1.jpg");
    Mat roi = img(Rect(0,0,img.cols-10,img.rows-10));
    imshow("hi",roi);
    return waitKey();
}