【发布时间】:2011-08-12 14:01:13
【问题描述】:
我正在将旧的测试应用程序从 OpenCV C 接口迁移到新的 C++ 接口(我希望学习它)。使用 C++ 接口,cvSetImageROI 和 cvResetImageROI 的等价物是什么?我在文档中找不到它。
【问题讨论】:
我正在将旧的测试应用程序从 OpenCV C 接口迁移到新的 C++ 接口(我希望学习它)。使用 C++ 接口,cvSetImageROI 和 cvResetImageROI 的等价物是什么?我在文档中找不到它。
【问题讨论】:
其实就在docs上。真丢人。
//Make a rectangle
Rect roi(10, 20, 100, 50);
//Point a cv::Mat header at it (no allocation is done)
Mat image_roi = image(roi)
【讨论】:
my_mat 的有效 cv::Mat。要将其转换为 IplImage*,您需要做的就是进行强制转换操作:IplImage* img = &(IplImage)my_mat;
IplImage* img = &(IplImage)my_mat; 向我提出以下警告:warning C4238: nonstandard extension used : class rvalue used as lvalue。这是正常的吗? (VS2005)
IplImage img = (IplImage)my_mat;,然后在需要使用指向它的内存指针时传递&img。
根据您的需要,还有一个 cv::Mat 构造函数的重载版本,它以 ROI (cv::Rect) 作为参数。
cv::Mat img = ...;
cv::Rect roi(x,y,width,height);
cv::Mat img_crop(img, roi);
【讨论】: