我在 C 中使用 OpenCV 进行图像处理。如果文档中回答了这个问题,请原谅我,但我发现 OpenCV 文档的格式非常糟糕且难以阅读。
我有一个从图像文件中提取的 CvMat*
,如下所示:
CvMat* mat = cvLoadImageM((char*) filename, CV_LOAD_IMAGE_COLOR);
我需要做的是通过裁剪出某个有界区域来获得它的子图像。一个合乎逻辑的命令可能是:
CvMat* subMat = cvGetSubImage(mat, minx, maxx, miny, maxy);
其中 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);
OpenCV 内置了设置您关心的区域并将该区域从图像中复制出来的功能,就像您想要实现的那样。
关于c - openCV 在 C 中获取子图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11725990/