复制Simd :: View的一部分

时间:2018-06-27 12:30:30

标签: c++ image algorithm image-processing simd-library

我使用Simd::View中的Simd Library类。它是一个保存图像的容器。我需要将图像的一部分(右下角)复制到另一张图像中。

据我所知,有一个功能Simd::Copy可以将一个图像复制到另一个图像。但是它将整个图像复制。当然,我可以编写自己的函数来执行此操作。但是也许有人知道这个问题有什么好看的解决方案吗?

2 个答案:

答案 0 :(得分:1)

我建议使用方法Simd::View::Region。它返回给定图像中子区域的引用。 因此,您可以使用Simd::Copy轻松复制该子区域:

#include "Simd/SimdLib.hpp"

int main()
{
    typedef Simd::View<Simd::Allocator> View;
    View a(200, 200, View::Gray8);
    View b(100, 100, View::Gray8);
    // Copying of a part (the rigth bottom corner) of image a to the image b:
    Simd::Copy(a.Region(b.Size(), View::RightBottom), b);
    return 0;
}

答案 1 :(得分:0)

有一个名为Simd::CopyFrame的函数 它接受源,边界框和目标作为输入参数。使用此功能,您可以将输入图像的右下角复制到另一个输出图像。

可以使用Simd::Rectangle()创建边界框。