Копирование части Simd :: View - PullRequest
0 голосов
/ 27 июня 2018

Я использую Simd :: View класс из Simd Library . Это контейнер, который содержит изображение. Мне нужно скопировать часть (правый нижний угол) изображения в другое изображение.

Как я знаю, есть функция Simd :: Copy , которая позволяет копировать одно изображение в другое. Но это копирует изображение в целом. Конечно, я мог бы написать свою собственную функцию для этого. Но, может быть, кто-нибудь знает какое-нибудь красивое решение этого вопроса?

Ответы [ 2 ]

0 голосов
/ 28 июня 2018

Я бы порекомендовал использовать метод 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;
}
0 голосов
/ 27 июня 2018

Существует функция с именем Simd :: CopyFrame который принимает источник, ограничивающий кадр и назначение в качестве входных параметров. Используя эту функцию, вы сможете скопировать правый нижний угол вашего входного изображения в другое выходное изображение.

Ограничивающая рамка может быть создана с помощью Simd :: Rectangle () .

...