openCV在C中获得子图像

ewo*_*wok 1 c opencv image

我在C中使用OpenCV进行图像处理.如果在文档中回答了这个问题,请原谅我,但我发现OpenCV文档非常糟糕且难以阅读.

我有一个CvMat*我从图像文件中提取,如下所示:

CvMat* mat = cvLoadImageM((char*) filename, CV_LOAD_IMAGE_COLOR);
Run Code Online (Sandbox Code Playgroud)

我需要做的是通过裁剪某个有界区域来获得子图像.对此的逻辑命令可能是:

CvMat* subMat = cvGetSubImage(mat, minx, maxx, miny, maxy);
Run Code Online (Sandbox Code Playgroud)

其中minx,maxx,miny,和maxy限定所述裁剪区域的边界.是否有内置的方法可以轻松完成此操作?

Pyr*_*rce 8

看看http://nashruddin.com/OpenCV_Region_of_Interest_(ROI)/

其中教程在感兴趣区域执行以下操作:

cvSetImageROI(img1, cvRect(10, 15, 150, 250));
IplImage *img2 = cvCreateImage(cvGetSize(img1),
                           img1->depth,
                           img1->nChannels);
cvCopy(img1, img2, NULL);
cvResetImageROI(img1);
Run Code Online (Sandbox Code Playgroud)

OpenCV具有内置功能,可以设置您关注的区域,并将该区域从图像中复制出来,就像您想要实现的那样.