首页 文章

断言ROI opencv失败

提问于
浏览
0

我使用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

cvSetImageROI(imageOriginal,cropRect);

尝试{
cvCopy(imageOriginal,img,NULL); //仅复制裁剪区域
}
catch(cv :: Exception&e){
cout << e.what()<< endl;
}
cvResetImageROI(imageOriginal);
cvShowImage(“原始投资回报率”,img);
waitKey();

如果我将矩形保留为全尺寸 CvRect cropRect = cvRect(0, 0, width, height); 我没有错误 . 问题是什么?

1 回答

  • 0

    您的代码来自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();
    }
    

相关问题