如何合并图像并相互施加

Vik*_*tel 11 android image-processing android-image

假设我上传了两张或两张以上的照片Framelayout.因此,我在这三张照片的三个不同位置上传了三个与同一个人的照片.然后,可以使用Android或Java或Native中的哪些图像处理库来执行某些操作,如图中所示.

我想互相拍多张照片.

这样的东西: -

图片与分层设施

一个想法是:

  1. 在所有这些图片中进行一些分层,并在图片中找到不匹配的区域并合并它们.

如何将多张图片与其他图片合并?通过检查di-similarity并相互合并?

是否有任何第三方Api或一些Photoshop服务可以帮助我进行这些图像处理?

Gab*_*njo 7

在这种情况下,您不只是尝试组合图像.您真的想要在不同位置组合包含相同对象的场景.

因此,不仅仅是简单的组合或α合成,其中输出图像中给定像素的颜色是每个图像中该像素的值的总和除以图像的数量.

在这种情况下,您可能会这样做:

  1. 确定分析考虑多个图像时不改变的像素的场景背景.
  2. 从输出图像开始只是背景.
  3. 对于每个图像,删除背景以获取所需对象并将其与输出图像组合.

有一个Marvin插件来执行此任务,称为MergePhoto.下面的程序使用该插件来组合一组跑酷照片.

import marvin.image.MarvinImage;
import marvin.io.MarvinImageIO;
import marvin.plugin.MarvinImagePlugin;
import marvin.util.MarvinPluginLoader;

public class MergePhotosApp {

public MergePhotosApp(){

    // 1. load images 01.jpg, 02.jpg, ..., 05.jpg into a List
    List<MarvinImage> images = new ArrayList<MarvinImage>();
    for(int i=1; i<=5; i++){
        images.add(MarvinImageIO.loadImage("./res/0"+i+".jpg"));
    }

    // 2. Load plug-in and process the image
    MarvinImagePlugin merge = MarvinPluginLoader.loadImagePlugin("org.marvinproject.image.combine.mergePhotos");
    merge.setAttribute("threshold", 38);

    // 3. Process the image list and save the output
    MarvinImage output = images.get(0).clone();
    merge.process(images, output);
    MarvinImageIO.saveImage(output, "./res/merge_output.jpg");
}

public static void main(String[] args) {
    new MergePhotosApp();
}
}
Run Code Online (Sandbox Code Playgroud)

输入图像和输出图像如下所示.

在此输入图像描述