【问题标题】:Region of Interest algorithm (square)感兴趣区域算法(正方形)
【发布时间】:2014-08-24 15:41:49
【问题描述】:

在opencv中有一个数据类型名为Rect,他的一个构造函数是这样的:

矩形(点 pt1,点 pt2)。

然后你可以使用它的方法裁剪 Mat

Mat.submat(矩形 roi).

使用这种方法,您可以从两个点创建一个正方形,然后裁剪 Mat。

我正在使用另一种数据类型,所以我不能使用 opencv,我需要知道这个算法是如何实现的,或者我可以在哪里阅读更多关于它的信息。

【问题讨论】:

    标签: algorithm opencv


    【解决方案1】:

    最简单的解决方案是遍历像素并复制它们,见下文。 OpenCV 当然使用更优化和更复杂的代码——你必须翻阅源代码才能找到实现。如果您正在寻找一个简单的解决方案而不担心效率,下面的 sn-p 应该会有所帮助。

    YourImageType ExtractSubImage(YourImageType sourceImage, RECT roi)
    {
        YourImageType destImage;
        <Allocate destImage with size same as roi>
    
        for (int rowSrc = roi.top, rowDst = 0, pixelDst = 0; rowSrc <= roi.bottom; rowSrc++, rowDst++)
        {
            int pixelSrc = sourceImage.width * rowSrc + roi.left;
            for (int colSrc = roi.left, colDst = 0; colSrc <= roi.right; colSrc++, colDst++, pixelSrc++, pixelDst++)
            {
                destImage.buffer(pixelDst) = sourceImage.buffer(pixelSrc);
            }
        }
    
        return destImage;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-08-10
      • 2013-02-28
      • 2012-02-22
      • 2013-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-19
      相关资源
      最近更新 更多