我在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
限定所述裁剪区域的边界.是否有内置的方法可以轻松完成此操作?
看看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具有内置功能,可以设置您关注的区域,并将该区域从图像中复制出来,就像您想要实现的那样.