【问题标题】:Equivalent to cvSetImageROI in the OpenCV C++ interface等效于 OpenCV C++ 接口中的 cvSetImageROI
【发布时间】:2011-08-12 14:01:13
【问题描述】:

我正在将旧的测试应用程序从 OpenCV C 接口迁移到新的 C++ 接口(我希望学习它)。使用 C++ 接口,cvSetImageROIcvResetImageROI 的等价物是什么?我在文档中找不到它。

【问题讨论】:

    标签: c++ opencv


    【解决方案1】:

    其实就在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;
    • @karlphillip 使用IplImage* img = &(IplImage)my_mat; 向我提出以下警告:warning C4238: nonstandard extension used : class rvalue used as lvalue。这是正常的吗? (VS2005)
    • 最好是IplImage img = (IplImage)my_mat;,然后在需要使用指向它的内存指针时传递&img
    • docs 的链接无效。能否请您发布实际文档而不是博客链接?
    • @Nawaz 这是六年半前回答该问题时 OpenCV 文档的链接。很长时间没有接触过 OpenCV,很遗憾,我无法为您指出当前的文档。
    【解决方案2】:

    根据您的需要,还有一个 cv::Mat 构造函数的重载版本,它以 ROI (cv::Rect) 作为参数。

    cv::Mat img = ...;
    cv::Rect roi(x,y,width,height);
    cv::Mat img_crop(img, roi);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      • 1970-01-01
      • 2020-03-04
      • 1970-01-01
      相关资源
      最近更新 更多