首页 > 解决方案 > 复制 Simd::View 的一部分

问题描述

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

据我所知,有一个功能Simd::Copy允许将一个图像复制到另一个图像。但它会整体复制图像。当然,我可以编写自己的函数来做到这一点。但也许有人知道这个问题的任何好看的解决方案吗?

标签: c++imagealgorithmimage-processingsimd-library

解决方案


我建议使用方法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;
}

推荐阅读